Android WebView基本使用配置

oy6085 7年前發布 | 10K 次閱讀 安卓開發 Android開發 移動開發

WebView在APP里可以說是無處不在了,隨便一個應用都能看到它的身影,我們在使用的時候經常需要簡單配置,這里有個建議就是根據具體項目將Webview簡單封裝,然后再繼承這個基類,免去重復代碼。這里記錄一下在簡單加載網頁的使用配置,方便查找。

基本配置

WebSettings webSettings = webView.getSettings(); 
//支持縮放,默認為true。
webSettings .setSupportZoom(false); 
//調整圖片至適合webview的大小
webSettings .setUseWideViewPort(true); 
// 縮放至屏幕的大小
webSettings .setLoadWithOverviewMode(true); 
//設置默認編碼
webSettings .setDefaultTextEncodingName("utf-8"); 
////設置自動加載圖片
webSettings .setLoadsImagesAutomatically(true);

高級配置

//多窗口
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);

訪問網址

webView.loadUrl("https://www.google.com.hk/?gws_rd=ssl");

訪問應用內資源

新建assets文件夾,在此文件夾下新建HTML文件如:js_demo.html。

新建Assets文件夾方法

webView.loadUrl("file:///android_asset/js_demo.html");

加載HTML片段或者富文本字符串

webView.loadData(data, "text/html; charset=UTF-8", null);
這樣寫一般就不會亂碼了,data為String字符串。

使用loadDataWithBaseURL方法加載內容

webView.loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl)

loadDataWithBaseURL()可以指定HTML代碼片段中相關資源的相對根路徑,也可以指定歷史Url,baseUrl指定了data參數中數據的基準地址,data中的數據可能會有超鏈接或者是image元素使用了相對路徑,如果沒有baseUrl,webview將訪問不到這些資源。

內存泄露問題

在 Activity 的onDestroy()生命周期,首先讓 WebView 加載 null 內容,然后移除 WebView,再銷毀 WebView,最后置空。代碼如下:

@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();
 }

參考文章:

安卓WebView相關設置

史上最全WebView使用,附送Html5Activity一份

 

來自:http://www.jianshu.com/p/bccfb2cc40a6

 

 本文由用戶 oy6085 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!