webview和h5交互

最近一直在写h5混合开发,经常要调用原生提供的方法,
今天有时间顺便研究下android怎样和h5交互

1.创建webview
webView = (WebView)findViewById(R.id.webV);

webView.loadUrl(“file:///android_asset/index.html”),

注意assets文件夹和java文件夹,res文件同一界别

调用时要file:///android_asset/,这样的路径 ,(在这里被坑了30分钟,一直说文件找不到)

也可以使网络地址。

WebSettings webSettings = webView.getSettings();

webSettings.setJavaScriptEnabled(true);//允许使用js

webSettings.setSupportZoom(true);

webSettings.setBuiltInZoomControls(true);//允许缩放

2.与原生交互, @JavascriptInterface不可少

webView.addJavascriptInterface(new JSInterface(), "android");
private final class JSInterface {
    @SuppressLint("JavascriptInterface")
    @JavascriptInterface
    public void setMessage(String s) {
        Toast.makeText(MainActivity.this, "我弹" + s, Toast.LENGTH_SHORT).show();
    }
}

我的源码