Windows
このページでは、Windows向けのWailsアプリケーション開発に関する、様々なガイドを掲載しています。
WebView2ランタイム依存関係のハンドリング
Windows用にビルドされたWailsアプリケーションは、Microsoft WebView2ランタイムがランタイム要件となっています。 Windows 11ではデフォルトでこのランタイムがインストールされていますが、一部のマシンではインストールされていません。 Wailsでは、この依存関係に対処するための簡単なアプローチを提供しています。
ビルド時に-webview2
フラグを使用することで、アプリ起動時に適切なランタイムが検出されない場合(インストールされているランタイムが古すぎる場合を含む) に、アプリケーションがどのように動作するかを指定できます。 次の4つのオプションがあります:
- Download
- Embed
- Browser
- 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により示されました。