Android WebView基本使用配置

oy6085 8年前
   <p>WebView在APP里可以说是无处不在了,随便一个应用都能看到它的身影,我们在使用的时候经常需要简单配置,这里有个建议就是根据具体项目将Webview简单封装,然后再继承这个基类,免去重复代码。这里记录一下在简单加载网页的使用配置,方便查找。</p>    <h3>基本配置</h3>    <pre>  <code class="language-java">WebSettings webSettings = webView.getSettings();   //支持缩放,默认为true。  webSettings .setSupportZoom(false);   //调整图片至适合webview的大小  webSettings .setUseWideViewPort(true);   // 缩放至屏幕的大小  webSettings .setLoadWithOverviewMode(true);   //设置默认编码  webSettings .setDefaultTextEncodingName("utf-8");   ////设置自动加载图片  webSettings .setLoadsImagesAutomatically(true);</code></pre>    <h3>高级配置</h3>    <pre>  <code class="language-java">//多窗口  supportMultipleWindows();   //获取触摸焦点  webview.requestFocusFromTouch();  //允许访问文件  setAllowFileAccess(true);   //开启javascript  setJavaScriptEnabled(true);    //支持通过JS打开新窗口  setJavaScriptCanOpenWindowsAutomatically(true);  //提高渲染的优先级  webSettings.setRenderPriority(RenderPriority.HIGH);    //支持内容重新布局  setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);  //关闭webview中缓存  setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);</code></pre>    <h3>访问网址</h3>    <p>webView.loadUrl(&quot;https://www.google.com.hk/?gws_rd=ssl&quot;);</p>    <h3>访问应用内资源</h3>    <p>新建assets文件夹,在此文件夹下新建HTML文件如:js_demo.html。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/971003148e814e37da27e442cab73f5f.png"></p>    <p style="text-align:center">新建Assets文件夹方法</p>    <p>webView.loadUrl(&quot;file:///android_asset/js_demo.html&quot;);</p>    <h3>加载HTML片段或者富文本字符串</h3>    <p>webView.loadData(data, "text/html; charset=UTF-8", null);<br> 这样写一般就不会乱码了,data为String字符串。</p>    <h3>使用loadDataWithBaseURL方法加载内容</h3>    <pre>  <code class="language-java">webView.loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl)</code></pre>    <p>loadDataWithBaseURL()可以指定HTML代码片段中相关资源的相对根路径,也可以指定历史Url,baseUrl指定了data参数中数据的基准地址,data中的数据可能会有超链接或者是image元素使用了相对路径,如果没有baseUrl,webview将访问不到这些资源。</p>    <h3>内存泄露问题</h3>    <p>在 Activity 的onDestroy()生命周期,首先让 WebView 加载 null 内容,然后移除 WebView,再销毁 WebView,最后置空。代码如下:</p>    <pre>  <code class="language-java">@Override   protected void onDestroy() {     if (webView!= null) {       webView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);        webView.clearHistory();       ((ViewGroup) webView.getParent()).removeView(mWebView);            webView.destroy();       webView= null;     }     super.onDestroy();   }</code></pre>    <p>参考文章:</p>    <p><a href="/misc/goto?guid=4959614157366032499" rel="nofollow,noindex">安卓WebView相关设置</a></p>    <p><a href="/misc/goto?guid=4959728841866077572" rel="nofollow,noindex">史上最全WebView使用,附送Html5Activity一份</a></p>    <p> </p>    <p>来自:http://www.jianshu.com/p/bccfb2cc40a6</p>    <p> </p>