android >WebView 实现 JS , JAVA 互调

1、映射Java对象到JavaScript对象上

mWebView = (WebView) findViewById(R.id.wv_content); 
mWebView.setVerticalScrollbarOverlay(true); 
final WebSettings settings = mWebView.getSettings(); 
settings.setSupportZoom(true); 
  
//WebView启用Javascript脚本执行 
settings.setJavaScriptEnabled(true); 
settings.setJavaScriptCanOpenWindowsAutomatically(true); 
  
//映射Java对象到一个名为”js2java“的Javascript对象上 
//JavaScript中可以通过"window.js2java"来调用Java对象的方法 
mWebView.addJavascriptInterface(new JSInvokeClass(), "HTMLOUT");
/**网页Javascript调用接口**/
class JSInvokeClass { 
    public void back() { 
        activity.finish(); 
    } 
}

    JS 代码

window.HTMLOUT.back();

2、JavaScript调用Java对象示例

mWebView.loadUrl("javascript:window.HTMLOUT.back();");

如果是想传参数

/**网页Javascript调用接口**/
class JSInvokeClass { 
    public void back() { 
        activity.finish(); 
    } 
   public void showHtml(String html) 
  { 
    Log.e("Html:"+html); 
  } 
}

java 执行JS

mWebView.loadUrl("javascript:window.HTMLOUT.showHtml(document.documentElement.innerHTML);");

相关推荐