2019独角兽企业重金招聘Python工程师标准>>>
首先在Anndroid代码中对WebView进行初始化
webView = (WebView) findViewById(R.id.webview);// 启用javascript
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new Test(),"android");class Test{@JavascriptInterfacepublic void show(){runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(MainActivity.this,"show",3000).show();}});}@JavascriptInterfacepublic void showText(String text){runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(MainActivity.this,text,3000).show();}});}
}
webview实现、html的代码如下
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<script type="text/javascript">function javacalljs(){document.getElementById("content").innerHTML ="<br\>JAVA调用了JS的无参函数";
}function javacalljswith(arg){document.getElementById("content").innerHTML =("<br\>"+arg);
}
</script>
</head>
<body>
HTML 内容显示 <br/>
<h1><div id="content">内容显示</div></h1>
<br/>
<input type="button" value="点击调用java代码" onclick="window.android.show()" />
<br/>
<input type="button" value="点击调用java代码并传递参数" onclick="window.android.showText('你好')" />
</body>
</html>
WebView与js交互主要分四种情况
1、Android 调用HTML中的javascript脚本
//调用js中无参方法
webView.loadUrl("javascript:javacalljs()");
js调用安卓、2、HTML中的javascript脚本调用Android本地代码
window.android.show()
3、Android 调用HTML中的javascript脚本并传递参数
//传递参数调用JS的方法
webView.loadUrl("javascript:javacalljswith(" + "'加班'" + ")");
4、HTML中的javascript脚本调用Android本地代码并传递参数
window.android.showText('你好')
android入门看什么书。window后跟的android为别名,需要前端开发人员与移动端开发人员定义统一的别名