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