1.设置允许执⾏JS脚本:
webSettings.setJavaScriptEnabled(true);
2.添加通信接⼜webView.addJavascriptInterface(Interface,"InterfaceName")
3. JS调Android
InterfaceName.MethodName
4. Android调JS无返回值的
webView.loadUrl("javascript:functionName()");
5.Android调JS有返回值的
webView.evaluateJavascript("sum(" + a + "," + b + ")", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.e("tag", "value=" + value);
}
});
HTML中代码
- <!DOCTYPE html>
- <html>
- <head>
- <title></title>
- <script type="text/javascript">
- function sum(a,b){
- return a+b;
- }
- function s(){
- var result =window.android.back();
- document.getElementById("p").innerHTML=result;
- }
- function sum2(a){
- document.getElementById("qq").innerHTML=a;
- }
- </script>
- </head>
- <body>
- <button onclick="s()">js调用安卓本地方法</button>
- <a href="file:///android_asset/test2.html">点击</a>
- <p id="p"></p>
- <p id="qq"></p>
- </body>
- </html>
Android 中代码
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mWebView = (WebView) findViewById(R.id.wb); <