Android WebView組件是一款網(wǎng)頁(yè)渲染引擎,能夠讓應(yīng)用程序能在界面內(nèi)直接顯示網(wǎng)頁(yè)內(nèi)容。這個(gè)內(nèi)嵌式瀏覽器負(fù)責(zé)頁(yè)面渲染、JavaScript執(zhí)行等核心功能。從Android 7.0開始,它作為系統(tǒng)組件通過常規(guī)更新維護(hù),開發(fā)人員可借助該工具在應(yīng)用中嵌入網(wǎng)頁(yè),實(shí)現(xiàn)混合開發(fā)模式,既能保留原生體驗(yàn),又具備網(wǎng)頁(yè)的靈活特性。
Android System WebView獲取WebView頁(yè)面加載狀態(tài)
步驟:
1、創(chuàng)建自定義WebViewClient(繼承WebViewClient類)
2、重寫onPageFinished方法(頁(yè)面加載完成后自動(dòng)觸發(fā)),在此處添加加載完成后的處理邏輯
3、通過webView.setWebViewClient方法關(guān)聯(lián)自定義WebViewClient
如需監(jiān)控加載進(jìn)度,需創(chuàng)建自定義WebChromeClient類,并重寫onProgressChanged方法
布局文件注意事項(xiàng):
webView需配置基礎(chǔ)設(shè)置,如webView.getSettings().setJavaScriptEnabled(true)啟用JavaScript支持
進(jìn)度條功能可在創(chuàng)建setWebChromeClient后,在其內(nèi)部類的onProgressChanged事件中實(shí)現(xiàn)
Android System WebView基礎(chǔ)概念
1、傳統(tǒng)瀏覽需要獨(dú)立瀏覽器,而WebView是嵌入原生應(yīng)用的內(nèi)置瀏覽器引擎,用戶可能察覺不到瀏覽器存在
2、常規(guī)瀏覽器包含UI界面與引擎兩部分,WebView相當(dāng)于原生應(yīng)用中的瀏覽器引擎
3、WebView作為可視化組件,構(gòu)成原生應(yīng)用的顯示區(qū)域
4、通過WebView展示的內(nèi)容可直接從服務(wù)器獲取,無(wú)需本地存儲(chǔ)
5、這種設(shè)計(jì)使網(wǎng)頁(yè)應(yīng)用能夠方便地嵌入原生環(huán)境,實(shí)現(xiàn)代碼復(fù)用
6、運(yùn)行在WebView中的JavaScript可調(diào)用原生系統(tǒng)API,突破傳統(tǒng)瀏覽器沙箱限制
7、由于開發(fā)人員對(duì)加載內(nèi)容擁有完全控制權(quán),降低了惡意代碼入侵的風(fēng)險(xiǎn)
8、JavaScript與原生代碼可相互通信,集成傳感器、存儲(chǔ)等系統(tǒng)功能
Android System WebView應(yīng)用場(chǎng)景
1、作為應(yīng)用內(nèi)置瀏覽器,直接顯示網(wǎng)頁(yè)內(nèi)容
2、用于廣告內(nèi)容展示
3、承載完整應(yīng)用交互(混合應(yīng)用),簡(jiǎn)化部署更新流程
4、作為原生功能擴(kuò)展,使用Web技術(shù)開發(fā)插件和附加功能
Android System WebView更新日志
v142.0.7444.106版本
問題修復(fù)與性能優(yōu)化