十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
前言
在雷州等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、网站制作 网站设计制作按需求定制开发,公司网站建设,企业网站建设,高端网站设计,全网整合营销推广,成都外贸网站建设公司,雷州网站建设费用合理。在应用程序开发过程中,经常会采用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); // 隐藏原生的缩放控件