前段时间 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();

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容