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();
}