現在的APP里面會嵌套一些h5酷炫的界面,而我們的app就需要和H5進行互動,下面我們就來看看怎么進行具體的互動,
Webview的基本設定
以下是webview的基本設定
WebSettings setting = mWebView.getSettings();
setting.setJavaScriptCanOpenWindowsAutomatically(true);//設定js可以直接打開視窗,如window.open(),默認為false
setting.setJavaScriptEnabled(true);//是否允許執行js,默認為false,設定true時,會提醒可能造成XSS漏洞
setting.setSupportZoom(true);//是否可以縮放,默認true
setting.setBuiltInZoomControls(false);//是否顯示縮放按鈕,默認false
setting.setUseWideViewPort(true);//設定此屬性,可任意比例縮放,大視圖模式
setting.setLoadWithOverviewMode(true);//和setUseWideViewPort(true)一起解決網頁自適應問題
setting.setAppCacheEnabled(true);//是否使用快取
setting.setDomStorageEnabled(true);//DOM Storage
setting.setDatabaseEnabled(true);
setting.setAllowFileAccess(true);
setting.setAppCacheEnabled(true);
setting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); //圖片太大
setting.setDatabasePath(getActivity().getApplicationContext().getCacheDir().getAbsolutePath());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
setting.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
開啟log日志
開啟列印web的日志設定,可以看到log資訊:
webview.setWebChromeClient(new WebChromeClient() {
public boolean onConsoleMessage(ConsoleMessage cm) {
LogUtils.e(TAG, "列印web日志------"+cm.message() + " -- From line "
+ cm.lineNumber() + " of "
+ cm.sourceId());
return true;
}
});
添加JavascriptInterface;
mWebView.addJavascriptInterface(new AndroidJavaScript(), "test");
AndroidJavaScript
public class AndroidJavaScript {
@JavascriptInterface
public void testPage() {
LogUtils.e("test", "testPage");
}
}
testPage是和H5約定的名稱,以上就是簡易的Android和js的互動,具體的細節還需要和H5討論,
HTML簡易代碼
里面主要有兩個按鈕,兩個JS方法
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<script type="text/javascript">
function AndroidCallJs(){
document.getElementById("content").innerHTML =
"<br\>Android呼叫了JS的無參函式";
}
function AndroidCallJsParam(arg){
document.getElementById("content").innerHTML =
("<br\>"+arg);
}
</script>
</head>
<body>
HTML Test <br/>
<h1><div id="content">Test </div></h1>
<br/>
<input type="button" value="https://www.cnblogs.com/wangzizhu/archive/2021/01/05/點擊呼叫Android代碼" onclick="window.android.startFunction()" />
<br/>
<input type="button" value="https://www.cnblogs.com/wangzizhu/archive/2021/01/05/點擊呼叫Android代碼并傳遞引數" onclick="window.android.startFunction('https://blog.csdn.net/sinat_26397681?spm=1000.2115.3001.5343')" />
</body>
</html>
Android 的呼叫方式
// 無引數呼叫 JS的方法
webview.loadUrl("javascript:AndroidCallJs()");
//有參呼叫HTML js方法
webview.loadUrl("javascript:AndroidCallJsParam(" + "'https://blog.csdn.net/sinat_26397681?spm=1000.2115.3001.5343'" + ")");
歡迎關注公眾號 拖鞋王子豬 一起開心起來,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/245157.html
標籤:其他
下一篇:Android筆記【外觀部分】
