メインコンテンツにスキップ
バージョン: v2.8.0

Windows

このページでは、Windows向けのWailsアプリケーション開発に関する、様々なガイドを掲載しています。

WebView2ランタイム依存関係のハンドリング

Windows用にビルドされたWailsアプリケーションは、Microsoft WebView2ランタイムがランタイム要件となっています。 Windows 11ではデフォルトでこのランタイムがインストールされていますが、一部のマシンではインストールされていません。 Wailsでは、この依存関係に対処するための簡単なアプローチを提供しています。

ビルド時に-webview2フラグを使用することで、アプリ起動時に適切なランタイムが検出されない場合(インストールされているランタイムが古すぎる場合を含む) に、アプリケーションがどのように動作するかを指定できます。 次の4つのオプションがあります:

  1. Download
  2. Embed
  3. Browser
  4. Error

Download

このオプションでは、適切なランタイムが見つからない旨をユーザに知らせ、MicrosoftのWebView2のサイトからダウンロードされる公式のブートストラッパを実行する提案をします。 ユーザが続行を選択した場合、公式のブートストラッパがダウンロードおよび実行されます。

Embed

このオプションでは、アプリケーション内に公式のブートストラッパの埋め込みます。 適切なランタイムが見つからない場合、アプリケーションはブートストラッパの実行を提案します。 これにより、バイナリサイズが150k程度増えます。

Browser

このオプションでは、適切なランタイムが見つからない旨をユーザに知らせ、ブートストラッパをダウンロードしてインストールすることのできるWebView2の公式ページをブラウザで開く提案をします。 続行した場合、アプリケーションは終了し、インストールをユーザに委ねます。

Error

このオプションでは、適切なランタイムが見つからない場合、ユーザにエラーが表示され、それ以上何の処理も実行しません。

フィックスドバージョンランタイム

WebView2の依存関係に対処するための別手段として、自身でランタイムを運ぶという方法が挙げられます。 フィックスドバージョンランタイムをダウンロードしてバンドルするか、アプリケーション内でランタイムをダウンロードするようにします。

また、Wailsの起動時にwindows.Optionsにおいて、フィックスドバージョンWebView2ランタイムのパスを指定する必要があります。

    wails.Run(&options.App{
Windows: &windows.Options{
WebviewBrowserPath: "",
},
})

注意: WebviewBrowserPathが指定されている場合、必要な最低バージョンを満たしていなかったり、ランタイムへのパスが無効であったりすると、強制的にerrorオプションの挙動となります。

他のプログラムの起動

スクリプトなどの他のプログラムを起動すると、当該プログラムのウィンドウが画面に表示されます。 このウィンドウを表示させたくない場合は、次のコードを使用してください:

cmd := exec.Command("your_script.exe")
cmd.SysProcAttr = &syscall.SysProcAttr{
HideWindow: true,
CreationFlags: 0x08000000,
}
cmd.Start()

この解決策は、ディスカッションボード内でsithembisoにより示されました。