5 WebView相關(guān)

1、webview常見的一些坑

1)android API level 16 以及以前的版本存在遠(yuǎn)程代碼執(zhí)行漏洞,該漏洞由于程序沒有正確限制使用webview.addJavascriptInterface方法,遠(yuǎn)程攻擊者可以通過使用Java ReflectionAPI利用該漏洞執(zhí)行任意Java對(duì)象方法。
2)webview在布局文件中的使用:webview寫在其他容器時(shí),需要注意的是,當(dāng)你需要銷毀webview的時(shí)候,在onDestory方法里面先把LinearLayout里面的webview Remove掉然后再調(diào)用webview的removeAllViews和webview的destory方法這樣才真正的銷毀整個(gè)webview而不會(huì)導(dǎo)致內(nèi)存泄漏問題。
3)jsbridge:是一個(gè)很熱門的技術(shù),他是一個(gè)通過JavaScript與Java構(gòu)建一個(gè)橋?qū)嶋H上JsBridge的卻是Js和Native之前的一種通訊方法。簡(jiǎn)單地說,JsBridge就是定義Native和Js的通訊,Native只通過一個(gè)固定的對(duì)象調(diào)用Js,Js也只通過固定的對(duì)象調(diào)用Native。
4)webviewClient.onPageFinished->webChromeClient.onProgressChanged,前者就是表示當(dāng)加載完成頁面的時(shí)候就會(huì)回調(diào)onPageFinished這個(gè)方法,這個(gè)方法會(huì)判斷你這個(gè)網(wǎng)頁是否真的加載完畢,當(dāng)前正在加載的網(wǎng)頁如果你產(chǎn)生跳轉(zhuǎn)的時(shí)候這個(gè)方法就會(huì)被調(diào)用無數(shù)次,當(dāng)你的加載各種各樣的網(wǎng)頁的時(shí)候并且要完成一些操作的時(shí)候最好還是調(diào)用webChromeClient.onProgressChanged這個(gè)方法。
5)后臺(tái)耗電:當(dāng)程序開啟webview加載網(wǎng)頁的時(shí)候webview會(huì)自己開啟線程,如果沒有很好將webview銷毀的話殘余的線程就會(huì)一直在后臺(tái)運(yùn)行,導(dǎo)致引用程序耗電量居高不下。可以采取在Activity的onDestory方法里面銷毀WebView。
6)webview硬件加速導(dǎo)致頁面渲染問題:容易出現(xiàn)頁面加載帶塊同時(shí)界面閃爍的現(xiàn)象。解決辦法是,設(shè)置webview暫時(shí)關(guān)閉硬件加速。

2、關(guān)于webview的內(nèi)存泄露問題
1)獨(dú)立進(jìn)程就是開啟一個(gè)單獨(dú)的進(jìn)程給webview操作、簡(jiǎn)單暴力、不過可能涉及到進(jìn)程間的通信。
2)動(dòng)態(tài)添加webview,傳入webview中使用的Context使用弱引用,動(dòng)態(tài)添加webview意思是在布局中創(chuàng)建一個(gè)viewgroup用來放置webview,Activity創(chuàng)建add進(jìn)來,在activity停止時(shí)remove掉。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 總結(jié) Android WebView 常用的相關(guān)知識(shí)點(diǎn),令包含以下干貨內(nèi)容分析:Js注入漏洞、WebView...
    無名小子的雜貨鋪閱讀 70,126評(píng)論 17 169
  • Tips 由于WebView的用法實(shí)在太多,如果您只是想查詢某個(gè)功能的使用——建議Ctrl+F(Commad+F)...
    BugDev閱讀 7,914評(píng)論 11 109
  • WebView·開車指南 目錄 WebView簡(jiǎn)介 WebView基本使用 WebView常用方法 WebSett...
    南城的人閱讀 4,870評(píng)論 0 19
  • WebView·開車指南 目錄 WebView簡(jiǎn)介 WebView基本使用 WebView常用方法 WebSett...
    小莊bb閱讀 3,655評(píng)論 3 25
  • 關(guān)于 android Webview 基本使用 加載html四種方式 簡(jiǎn)單使用 在AndroidManifest....
    小面包屑閱讀 5,638評(píng)論 2 13

友情鏈接更多精彩內(nèi)容