Android WebView 第一次正常加载,退出WebView界面,等1分钟后,再进加载就空白了

Keyoumi 发布于 2017/03/10 19:23
阅读 1K+
收藏 0

Webview 加载活动列表在在部分手机上空白显示,尝试的几种方式。

1、xml的WebView标签中添加android:layerType="hardware"

2、xml的WebView标签中添加android:layerType="software"

3、WebViewActivity中添加

protected void onDestroy() {
        Logger.i("WebViewActivity onDestroy:", "webView:" + webView);
        if (webView != null) {
            webView.setWebChromeClient(null);
            webView.setWebViewClient(null);
            webView.getSettings().setJavaScriptEnabled(false);
            webView.clearCache(true);
            webView.removeAllViews();
            webView.destroy();
        }
        super.onDestroy();
    }

 

   4、 LoadUrl时,设置以下:
  webView.clearCache(true);
        webView.clearHistory();
        webView.getSettings().setJavaScriptEnabled(true);//设置能够解析JavaScript
        webView.getSettings().setSupportZoom(true); // 支持缩放
        webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); // 不加载缓存
        webView.getSettings().setDomStorageEnabled(true);//设置适应HTML5的一些方法
        webView.getSettings().setAppCachePath(getApplicationContext().getCacheDir().getAbsolutePath());
        webView.getSettings().setAllowFileAccess(true);
        webView.getSettings().setAppCacheEnabled(true);
        webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
    

5、   

@Override
public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        mWebView.setLayerType(View.LAYER_TYPE_HARDWARE,null);
}

6:在onPause()中加上这句

mWebView.loadUrl("about:blank");


使用以上方式均没有结果,庆幸测试同事在反复测试过程中,复现了此问题。在打开app后点击跳转到WebView后(网页正常展示,进入webview又返回到其他Activity页面后,停留很长时间再进WebView的话,是没问题的),再返回到前一个Activity页面,停留一段时间后(大概1分钟),再跳转到WebView后,页面一直加载不出来,显示空白。

根据代码中打的log,清楚的知道,代码执行到onProgressChanged函数中,progress的值停留在95。
问题就跟踪到这里。开始分析问题。。
网页的问题?还是App加载的问题?(因为ios那边正常展示,自己在电脑浏览器上也试过很多次是正常展示的,所以,一开始自己先入为主,认为是自己app的问题,研究了好几天的时间)通过替换网页,为www.baidu.com 发现没有这个问题。然后通过电脑浏览器,查看页面源码,发现,网页标题侧边的icon加载出错(前端没有配置。。下面有图说明什么icon)
以前做新需求、解决bug前都会好好分析分析,在文本编辑器里,写下步骤。可是这次却有点混乱,完全没有一个正确的思路去计划任务的执行(排除法、缩小范围,精确问题所在)。。
H5已经将icon图标配置上去了,可是还是加载不了。。。我就ooxx了。。考虑到网络路由(连接的手机网络)的原因。手机使用4G流量卡试试。。。。。测试结果,还是不行。。。
备注:在本地开tomcat时,请求配置的链接,tomcat会默认给一个网页标题的icon导致,测试时总能通过。

实在是没办法了。。。现在还在加班。真无语。。电脑带回去,明天再看看吧。。。

加载中
0
Keyoumi
Keyoumi

反复调试,发现同类问题:在进入列表页后,不操作,等待1分钟,再点击某项活动,无法加载数据和跳转。需多次点击或者等候5分钟才可展示。
同时,在Android浏览器和微信浏览器中输入活动链接,也出现此bug。
证明是链接的问题,可是在电脑浏览器中和ios中显示是正常。

0
Keyoumi
Keyoumi

03-13 18:08:10.519 27496-27545/com.yu.android.guan D/libc-netbsd: getaddrinfo: lh. guanrong.com get result from proxy >>
03-13 18:08:10.522 27496-27545/com.yu.android.guan I/System.out: propertyValue:false
03-13 18:08:10.522 27496-27545/com.yu.android.guan I/System.out: openConnection:1
03-13 18:08:10.522 27496-27545/com.yu.android.guan D/libc-netbsd: [getaddrinfo]: hostname=61.133.48.94; servname=(null); cache_mode=(null), netid=0; mark=0
03-13 18:08:10.522 27496-27545/com.yu.android.guan D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
03-13 18:08:10.531 27496-27545/com.yu.android.guan I/System.out: entering allowSendingEmail
03-13 18:08:10.531 27496-27545/com.yu.android.guan I/System.out: [CDS]connect[/61.133.48.94:443] tm:20
03-13 18:08:10.535 27496-27545/com.yu.android.guan E/Posix: [Posix_connect Debug]Process com.yu .android. guan :443
03-13 18:08:10.592 27496-27545/com.yu.android.guan I/System.out: gba_cipher_suite:TLS_RSA_WITH_AES_128_CBC_SHA
03-13 18:08:10.594 27496-27545/com.yu.android.guan I/System.out: snd buffer size:8192
03-13 18:08:10.595 27496-27545/com.yu.android.guan I/System.out: >doSendRequest
03-13 18:08:10.597 27496-27545/com.yu.android.guan I/System.out: <doSendRequest
03-13 18:08:10.690 27496-27496/com.yu.android.guan I/ guan: WebViewActivity onProgressChanged:showDialogtrue  progress:95
03-13 18:13:02.248 27496-6016/com.yu.android.guan D/libc-netbsd: [getaddrinfo]: hostname=wx-uat. guanrong.com; servname=(null); cache_mode=(null), netid=0; mark=0
03-13 18:13:02.248 27496-6016/com.yu.android.guan D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=1024; ai_family=2
03-13 18:13:02.272 27496-6016/com.yu.android.guan D/libc-netbsd: getaddrinfo: wx-uat. guanjinrong.com get result from proxy >>

0
kn0527
kn0527

 博主 你好 请问你后来这个问题怎么解决的呢

eric.lee
eric.lee
导致原因不清楚, 我觉得是 webview的初始化需要时间久,load的时候 初始化未完成, 我开启线程延长200毫秒后load解决了这个问题
Keyoumi
Keyoumi
不记得了,好像没解决。。。要是你解决了,在这博客下也回复下把。3Q
0
eric.lee
eric.lee

导致原因不清楚, 我觉得是 webview的初始化需要时间久,load的时候 初始化未完成, 我开启线程延长200毫秒后load解决了这个问题

返回顶部
顶部