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