長青版WebView2執行時將作為Windows 11作業系統的一部分包含在內。但是在Windows 11之前(Win10、Win8.1、Win7等),某些裝置可能未預安裝WebView2執行時。在桌面程式(WinForm、WPF、WinUI、Win32)安裝、更新、啟動後或建立 WebView2物件之前,程式可以自動執行此檢查。通過檢查登錄檔項或呼叫 API 來檢查客戶端電腦中是否已經安裝了 WebView2 執行時,並在缺少時自動安裝它。
在以下兩個登錄檔位置檢查 pv (REG_SZ) WebView2 執行時的 regkey。
- regkey HKEY_LOCAL_MACHINE 用於 每臺計算機 安裝。
- regkey HKEY_CURRENT_USER 用於 按使用者 安裝。
對於 WebView2 應用程式,必須至少存在其中一個具有大於 0.0.0.0 的版本並對其進行定義。 如果兩個 regkey 都不存在,或者僅存在其中一個 regkey,但其值為 null空字串或 0.0.0.0,則表示未在客戶端上安裝 WebView2 執行時。 檢查這些 regkey 以檢測是否安裝了 WebView2 執行時,並獲取 WebView2 執行時的版本。 在以下兩個位置找到 pv (REG_SZ) 。
要在 64 位Windows上檢查的兩個登錄檔位置:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5} HKEY_CURRENT_USER\Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
要在 32 位Windows上檢查的兩個登錄檔位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5} HKEY_CURRENT_USER\Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
versionInfo
是否為 nullptr
。 nullptr
指示未安裝 WebView2 執行時。 此 API 返回 WebView2 執行時或任何已安裝的 Microsoft Edge (Beta、Dev 或 Canary) 預覽頻道的版本資訊。webView2.CoreWebView2.Environment.BrowserVersionString
獲取到的 BrowserVersionString 值為100.0.1185.50,與控制檯中“Microsoft Edge WebView2 Runtime”的版本號一致。
如果將控制皮膚中將“Microsoft Edge WebView2 Runtime”解除安裝,然後再執行程式,直接報錯
異常資訊:找不到相容的Webview2執行時安裝來承載WebViews”。異常來源:Microsoft.Web.WebView2.Core。
直接將錯誤資訊暴露給終端使用者的做法非常不友好,甚至會洩露一些敏感資訊。
當異常發生時,開發者應適當的加工異常資訊並給出友好提示,然後引導使用者如何操作。
程式碼修改如下:
在具體業務邏輯之前呼叫檢測方法
如果終端使用者的環境隔離了網際網路,上述方式就無法聯網下載“長青版載入程式”。
此時換一種實現方式:應用軟體在製作安裝包的時候應該將“WebView2執行時長青版獨立安裝程式”加入其中。終端使用者安裝應用軟體後,“WebView2執行時長青版獨立安裝程式”也在應用軟體的安裝目錄下
此時根據作業系統的版本進行自動安裝
系統自動啟動安裝程式
點選【執行】按鈕,自動開始安裝。安裝完成後即可使用。