前段时间 WebView遇到的问题集 2020-05-13

BUG 1

问题表现:

webView空白,但是更换了url之后显示正常,一度认为是前端html的不兼容导致的,其实是对前端技术的不理解导致的;

问题分析

前端html文件放到WebView加载,正常会走WebViewClient中的onPageStarted(WebViewview, Stringurl, Bitmapfavicon)方法和onPageFinished(WebViewview, Stringurl)方法。
测试中https://www.baidu.com会顺利走完这两个方法,但是部分网页就不走onPageFinished方法了。
于是质问前端小哥的代码,反复讨论得知:JS没加载完,就会白屏;不用于https://www.baidu.com这个地址的是,我们的网页包含了定时器;
根据前端小哥提示:看看什么情况下会导致JS加载不完,得到答案,部分页面切换,导致JS的定时器被暂停,但是重新回来的时候,并没有及时重新调起定时器;

问题解决方案:

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

}

你可能感兴趣的:(前段时间 WebView遇到的问题集 2020-05-13)