最近一直在写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();
}
}