前段時(shí)間 WebView遇到的問題集 2020-05-13

BUG 1

問題表現(xiàn):

webView空白,但是更換了url之后顯示正常,一度認(rèn)為是前端html的不兼容導(dǎo)致的,其實(shí)是對前端技術(shù)的不理解導(dǎo)致的;

問題分析

前端html文件放到WebView加載,正常會走WebViewClient中的onPageStarted(WebViewview, Stringurl, Bitmapfavicon)方法和onPageFinished(WebViewview, Stringurl)方法。
測試中https://www.baidu.com會順利走完這兩個(gè)方法,但是部分網(wǎng)頁就不走onPageFinished方法了。
于是質(zhì)問前端小哥的代碼,反復(fù)討論得知:JS沒加載完,就會白屏;不用于https://www.baidu.com這個(gè)地址的是,我們的網(wǎng)頁包含了定時(shí)器;
根據(jù)前端小哥提示:看看什么情況下會導(dǎo)致JS加載不完,得到答案,部分頁面切換,導(dǎo)致JS的定時(shí)器被暫停,但是重新回來的時(shí)候,并沒有及時(shí)重新調(diào)起定時(shí)器;

問題解決方案:

@Override

public void onDestroy(){

? ? webView.stopLoading();

? ? webView.setWebChromeClient(null);

? ? webView.setWebViewClient(null);

? ? webView.destroy();

? ? super.onDestroy();

? ? EventBus.getDefault().unregister(this);

}

@Override

public void onResume(){

? ? super.onResume();

? ? webView.onResume();

? ? webView.resumeTimers();

}

@Override

public void onPause(){

? ? super.onPause();

? ? webView.onPause();

? ? webView.pauseTimers();

}

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

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