聊聊什么是WebView2?
Part 01
WebView2簡介
我們都知道,對于桌面應用開發來說,人們常用的方式就是采用c++或者c#、java等進行開發,然而這些語言開發效率不夠高,不如網頁開發靈活。于是,人們就提出了混合開發的模式,思考采用html+css+js的方式來開發桌面客戶端。而WebView2是微軟推出的一組控件,Microsoft Edge WebView2控件允許在本機應用中嵌入web技術(HTML、CSS以及JavaScript)。WebView2控件使用Microsoft Edge作為繪制引擎,以在本機應用中顯示web內容。使用WebView2可以在本機應用的不同部分嵌入Web代碼,或在單個WebView2實例中生成所有本機應用。
Part 02
WebView2的由來
之所以稱之為 WebView2,是因為它取代了WebView控件。而 WebView又取代了老舊的WebBrowser控件。WebView使用原始的Edge (Trident) 渲染引擎,是Windows10唯一的控件。WebView2使用較新的Edge渲染引擎,并支持多種Windows平臺
Part 03
WebView2的優點
- 豐富的Web生態系統和技能級。因為采用Web技術,因此豐富的Web框架和庫都可以拿來直接使用。
- 迭代和更新變得異常方便。
- 本級功能。提供了全套訪問本地的功能API。
- 代碼共享。多個平臺的代碼可以復用,一套代碼多個平臺。
- 微軟官方支持開發和維護。當WebView2發布一般可用版 (GA) 時,Microsoft會提供支持并添加新功能請求。
- 多個版本控制,可以選用不同的chromium進行打包。
- 支持多Windows平臺。支持跨Windows7、Windows8、Windows10和Windows11,實現一致的用戶體驗。
Part 04
WebView2的安裝方式
WebView2是依賴于Edge chromium內核的,有如下三種方式可以獲取:
1.安裝開發版的Edge (Chromium),穩定版的Edge目前不支持WebView控件,尚不確定后續是否會開放。
2.安裝獨立的WebView2 Runtime,它可以獨立下載和升級。
3.嵌入Edge chromium內核。
這三種方式運行效果基本一致,主要特點是:
前兩種方式和以前使用IE的瀏覽器控件非常類似,瀏覽器內核和程序是分離的,程序可以保持非常小的體積,瀏覽器內核可以單獨升級。
第一種方式目前還不支持Edge的穩定版,無法使用于生產環境。
第二種方式和以前的CEF比較類似,將chromium嵌入了程序,可以控制chromium的版本,減少依賴性,同時可以控制瀏覽器的版本,避免升級導致的不穩定。
第三種方式相對麻煩些,我使用的是第二種方式,安裝完了后,可以在程序列表中看到WebView2 runtime。
Part 05
WebView2的應用
中國移動數字鄉村PC客戶端是一款基于WebView2的應用程序,之前使用Miniblink框架由單人獨立開發,存在以下缺點:
1.單人維護,目前不再開發新需求;
2.不支持X64版本;
3.無法播放音視頻流;
4.加載3D場景過慢,例如電子地圖。
為此我們基于 WebView2進行了優化改造,其流程模型如下:
應用加載流程URL流程如下:
WebView2是一個建立在Chromium Edge之上的Web控件,它允許應用程序訪問最新的Web技術,能為用戶提供更好的Web體驗和性能。目前中國移動數字鄉村PC端應用已穩定上線,能快速加載渲染地圖,播放視頻,為中國移動數字鄉村提供了良好的用戶體驗。
如下圖為WebView2在中國移動數字鄉村PC端的應用。