初始化WebView
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
webView.setWebViewClient(new WebViewClient());
webView.addJavascriptInterface(new AndroidAndJsInterface(),"Android");
webView.loadUrl("file:///android_asset/JavaAndJs.html");
- 其中JavaAndJs.html放在assets文件夹中(也可以直接使用网络资源)
java调用javascript
- html带码中
在调用javaCallJs后 content中的内容将发生改变
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<script type="text/javascript">
function javaCallJs(s){
document.getElementById("content").innerHTML = s;
}
</script>
</head>
<body>
<div align="left" id="content"></div>
</body>
</html>
webView.loadUrl("javascript:javaCallJs("+"'"+"java调用js"+"'"+")")
javascript调用java
class AndroidAndJsInterface{
@JavascriptInterface
public void showToast(){
Toast.makeText(MainActivity.this, "js调用java", Toast.LENGTH_SHORT).show();
}
}
webView.addJavascriptInterface(new AndroidAndJsInterface(),"Android");
<body>
<div align="left" id="content"></div>
<input type="button" value="点击Android被调用" onclick="window.Android.showToast()"/>
</body>
https://github.com/REIGE/JavaAndJsDemo