工作中遇到一个问题,应用加载H5网页后,页面上用于切换网页下方显示内容的类似tab的按钮点击无效,然而该按钮在手机浏览器上可以正常运行。后来发现是自己的websetting设置不对,只需要加入settings.setDomStorageEnabled(true)即可。
原因是由于没有开启DOM Storage,H5的一些数据没能缓存进来导致的。
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
//启用数据库
//settings.setDatabaseEnabled(true);
//settings.setAllowContentAccess(true);
//settings.setAppCacheEnabled(false);
//settings.setBuiltInZoomControls(false);
//settings.setUseWideViewPort(true);
//settings.setLoadWithOverviewMode(true);
settings.setDomStorageEnabled(true);//就是这个设置没加导致的问题
//https与http混合资源处理,android5.0开始不能同时加载http和https资源
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
//页面加载
mWebView.setWebChromeClient(new WebChromeClient() {});
mWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
});
关于webview的缓存可以看以下链接https://www.jianshu.com/p/5e7075f4875f,https://blog.csdn.net/b7223058/article/details/77879428