Android中WebView的基本配置与填坑记录大全-创新互联

前言

在雷州等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、网站制作 网站设计制作按需求定制开发,公司网站建设,企业网站建设,高端网站设计,全网整合营销推广,成都外贸网站建设公司,雷州网站建设费用合理。

在应用程序开发过程中,经常会采用webview来展现某些界面,这样就可以不受发布版本控制,实时更新,遇到问题可以快速修复。

但是在Android开发中,由于Android版本分化严重,每一个版本针对webview都有部分更改,因此在开发过程中会遇到各种各样的坑,下面这篇就来给大家介绍关于Android中WebView的基本配置与填坑记录,话不多说了,来一起看看详细的介绍吧。

基本配置

// 硬件加速
getActivity().getWindow().setFlags(
 WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
 WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
// WebView 配置
WebSettings webSettings = mWebView.getSettings();
// 生命周期
mWebView.onPause(); // 通过 onPause 动作通知内核暂停所有的动作,如 DOM 的解析、plugin 的执行、JavaScript 执行等
mWebView.onResume(); // 恢复 WebView,能正常执行网页的响应
((ViewGroup) mWebView.getParent()).removeView(mWebView);
mWebView.destroy(); // 当 Activity 要 destroy 时,应先将 WebView 移除,再 destroy 掉
// 前进后退
if (mWebView.canGoBack()) {
 mWebView.goBack();
}
if (mWebView.canGoForward()) {
 mWebView.goForward();
}
// 缓存相关
mWebView.clearCache(true); // 清除缓存
mWebView.clearHistory(); // 清除历史
mWebView.clearFormData(); // 清除表单数据
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);// 设置缓存模式
// 缓存模式
LOAD_DEFAULT: 默认,根据 cache-control 决定是否从网络上取数据
LOAD_NORMAL: API level 17 中已经废弃, 从API level 11开始作用同 LOAD_DEFAULT 模式
LOAD_CACHE_ELSE_NETWORK: 只要本地有,无论是否过期,或者 no-cache,都使用缓存中的数据
LOAD_NO_CACHE: 不使用缓存,只从网络获取数据
LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据
// js 相关
webSettings.setJavaScriptEnabled(true); // 支持 js。如果碰到后台无法释放 js 导致耗电,应在 onStop 和 onResume 里分别设成 false 和 true 
mWebView.addJavascriptInterface(new WebAppInterface(this), "android"); // js 接口
webSettings.setPluginsEnabled(true); // 支持插件
// 设置自适应屏幕,两者合用
webSettings.setUseWideViewPort(true); // 将图片调整到适合 WebView 的大小 
webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小
// 缩放操作
webSettings.setSupportZoom(true); // 支持缩放,默认为 true
webSettings.setBuiltInZoomControls(true); // 设置内置的缩放控件,若为 false,则该 WebView 不可缩放
webSettings.setDisplayZoomControls(false); // 隐藏原生的缩放控件

名称栏目:Android中WebView的基本配置与填坑记录大全-创新互联
文章网址:http://pwwzsj.com/article/dhogpd.html