关于Android的WebView控件加载网页慢的原因

 APP中使用WebView加载h5网页显示商品详情。由于H5中掺杂大量图片,导致WebView加载超级慢,尤其在网速30k/s的弱网速情况下,显示相当糟糕。

于是,着手开始优化webView的显示问题。

 

主要从如下方面进行:

 

1、提高渲染的优先级

// webSettings.setRenderPriority(RenderPriority.HIGH);

2、使把图片加载放在最后来加载渲染 

 

webSettings.setBlockNetworkImage(true); 

3,使用硬件加速,该功能在Android 3.0 (API level 11)才加入。

参考:http://developer.android.com/guide/topics/graphics/hardware-accel.html 

4、开启缓存

// 开启H5(APPCache)缓存功能

webSettings.setAppCacheEnabled(true);

// webView数据缓存分为两种:AppCache和DOM Storage(Web Storage)。

// 开启 DOM storage 功能

webSettings.setDomStorageEnabled(true);

// 应用可以有数据库

webSettings.setDatabaseEnabled(true);

// 根据网络连接情况,设置缓存模式,

if (UtilTools.isConnected()) {

webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);// 根据cache-control决定是否从网络上取数据

} else {

webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);// 先查找缓存,没有的情况下从网络获取。

}

// 可以读取文件缓存(manifest生效)

webSettings.setAllowFileAccess(true);

上述措施,都是在优化webView的设置以提高WebView加载H5的效果。但往往情况并不是这么简单,有时候你还需要具体分析下是什么情况造成H5加载慢?

比如我遇到的情况是h5中内容很单一,链接了大量图片资源,所以加载起来慢。

当然还有一些情况可能是H5中的JS等导致加载慢,具体可参考:

 http://www.cnblogs.com/xinye/p/3144139.html 

你可以实现:

mWebView.setWebViewClient(new WebViewClient() {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) { // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边

view.loadUrl(url);

return true;

}

 

@Override

public void onPageStarted(WebView view, String url,

Bitmap favicon) {

Log.d(TAG,"开始加载网页。");

super.onPageStarted(view, url, favicon);

}

 

@Override

public void onLoadResource(WebView view, String url) {

Log.d(TAG,"加载资源--"+url);

super.onLoadResource(view, url);

}

 

@Override

public void onPageFinished(WebView view, String url) {

Log.d(TAG,"网页加载结束");

//view.getSettings().setBlockNetworkImage(false); 

super.onPageFinished(view, url);

}

});

来检查下你h5资源加载情况。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值