1. WebView无法缓存(Cache)
如果页面的Header包含了以下字段就会导致无法缓存(具体可参考CacheManger.parseHeaders()方法):
Cache-Control: no-store, no-cache
Pragma: no-cache
需要由服务器更改页面属性解决。
2. WebView.getFavIcon()无法获取到页面图标
必须先执行以下操作(打开图标数据库):
WebIconDatabase.getInstance().open(getDir(“icons”,MODE_PRIVATE).getPath());
3. WebViewClient.shouldOverLoadingUrl()方法有时不会被回调
我是在访问百度手机版切换为传统版时遇到的,页面最下面的<传统版>切换:
<a href=”http://video.baidu.com/index.html?fr=video” target=”_blank” onmousedown=”vdStatic(event, this, 2043)”>传统版</a>
网上搜集到讨论该问题的一些链接:
目前还没法办解决,对于想截获地址并禁止其访问的,可以在WebViewClient.onPageStart()里处理:
class MyWebViewClient extends WebViewClient {
/**
* 网页开始加载
*/
public void onPageStarted(WebView view, String url, Bitmap favicon){
if(IsIgnoreWebsite(url)){
view.stopLoading();
// 提示网页被屏蔽?
return;
}
}
}
4. 垂直滚动条总是显示白色轨迹底图(无法消掉)
在xml中给WebView设置一下属性发觉不起一点作用:
android:fadeScrollbars=“true”
android:scrollbarStyle=“outsideOverlay”
android:scrollbarAlwaysDrawVerticalTrack=“false”
必须在代码中对WebView进行设置才能奏效:
webview.setScrollbarFadingEnabled(true);
webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);