一.优化网页加载速度
默认情况html代码下载webView后,webkit开始解析网页各个节点,发现有外部样式文件或者外部脚本文件时,
异步发起网络请求下载文件,但如果在这之前也有解析到image节点,那是比也会发起网络请求下载相应的图片。
在网络情况比较差的情况下,过多的网络请求就会造成宽带紧张,影响到CSS或js文件的加载时间,
造成页面空包loading过久,解决的办法就是告诉webview先不要自动加载图片,等页面finish后再发起图片加载。
设置webview,先禁止加载图片
webSetting websetting=webview.getSettings();
//图片加载
if(Build.VERSION.SDK_INT >= 19){
webSettings.setLoadsImagesAutomatically(true);
}else {
webSettings.setLoadsImagesAutomatically(false);
}
覆写webviewClient的onPageFinished()方法,页面加载结束后再加载图片
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if (!view.getSettings().getLoadsImagesAutomatically()) {
view.getSettings().setLoadsImagesAutomatically(true);
}
}
PS:4.4以上系统在onPageFinished是在恢复加载时,如果存在多张图片引用时相同的src时,会只有一个image标签得到加载,因而对于这样的系统我们就直接加载。
二 硬件加速页面闪烁问题
4.0以上的系统我们开启硬件加速后,webview渲染页面更加快速,拖动也更加流畅,但是有个副作用就是,当webView视图
被整体遮住一块,然后突然恢复时,(比如使用SlideMenu将WebView从侧边滑出来时,)这个过渡期会出现白块同时界面闪烁。
解决这个问题的方法是