導語:
WebView: 就是一個用來展示網頁的視圖。在工作中或多或少的都有使用,最多的就是加載App中的活動頁。目前接手的一個項目中,大量使用了WebView,還有不少Js和安卓原生的交互。這里就在使用中記錄下其基本使用和遇到的問題。
一、使用步驟
-
配置訪問網絡的權限
<uses-permission android:name="android.permission.INTERNET"/>
-
實例化WebView,設置要訪問的頁面
webView = (WebView) findViewById(R.id.webView); //實例化WebView webView.loadUrl("https://www.hao123.com/"); //加載網絡頁面 webView.loadUrl("file:///android_asset/index.html"); //加載本地頁面,頁面放在項目assets目錄下
-
應用內打開頁面
WebSettings webSettings = mWebView.getSettings(); /**在App內部打開頁面 **/ mWebView.setWebViewClient(new WebViewClient());
經過以上三步,便可以在應用中使用WebView加載網頁了
常用參數設置
//網頁適配手機屏幕,以顯示完全
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
//支持手勢縮放,并且隱藏丑丑的縮放按鈕
webSettings.setSupportZoom(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setDisplayZoomControls(false);
?
二、JavaScript調用安卓方法
-
如果我們訪問的頁面中有JavaScript,在初始化時,設置WebView支持JavaScript
WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true);
然后創建一個JavaScript接口,可以讓JavaScript和安卓交互。JavaScript便可以調用安卓本地的方法,執行我們想要的操作
2.1 創建接口:
private class TestJavaScriptInterface {
@JavascriptInterface
public void getUserInfo() {
Toast.makeText(context, "點擊", Toast.LENGTH_LONG).show();
}
}
? 2.2 為JavaScript注入這個接口
//第一個參數:android和js交互的接口函數
//第二個參數:android為橋接對象可隨意設置
mWebView.addJavascriptInterface(new TestJavaScriptInterface(), "android");
2.3 JavaScript代碼:
<script>
function onClick(){
window.android.getUserInfo();
}
</script>
如下圖,點擊網頁上的按鈕后,調用了我們本地的方法并且彈出了Toast。證明JavaScript調用本地方法成功了。
微信截圖_20170720114550.png