1.js代码,名称demo.html,放在新建assets文件夹下
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="button" value="点击" οnclick="sendInfoToJava()"> <h1 id="h1"></h1> </body> </html> <script type="text/javascript"> function sendInfoToJava() { //通过点击js中的按钮,向Android发送消息, window.AndroidWebView.showInfoFromJs("来自html的消息"); } //加载js页面时候就调用该方法 showInfoFromJava(); //在android代码中调用此方法 function showInfoFromJava(){ document.getElementById("h1").innerHTML=window.AndroidWebView.getAndroid(); } </script>
h1标签就会显示从Android中传过来的数据
2.adnroid 代码
xml,中
<WebView android:id="@+id/webID" android:layout_width="match_parent" android:layout_height="match_parent" />
Activity中,实例化webview后
mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl("file:///android_asset/demo.html"); mWebView.addJavascriptInterface(new JsInterface(),"AndroidWebView");
private class JsInterface{ //在js中调用window.AndroidWebView.showInfoFromJs(name),便会触发此方法。 @JavascriptInterface public void showInfoFromJs(String name) {//从js中获取数据 Log.d("whq","----"+name); } @JavascriptInterface public String getAndroid(){//该方法向js中传输数据 return "来自Android消息"; } }第一次跟js交互,简单的原理就是这样