实习的时候给了一个native 与htmlt5的交互的任务
那Android平台来举例
Activity.java里面
WebView mWebView;
@SuppressLint({ "JavascriptInterface", "SetJavaScriptEnabled" })
mWebView = (WebView) findViewById(R.id.wv_view); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); mWebView.getSettings().setDefaultTextEncodingName("utf-8"); mWebView.setWebViewClient(new WebViewClient()); mWebView.setWebChromeClient(new WebChromeClient() { @Override public boolean onConsoleMessage(ConsoleMessage consoleMessage) { Log.d("WebView", consoleMessage.message()); return true; }mWebView.addJavascriptInterface(new JavaJsBridge(MainActivity.this), "jsBridge"); mWebView.loadUrl("file:///android_asset/webapp/html/deviceList.html");
JavaJsBridge.java里面 这个是自己新建的java类
public class JavaJsBridge { MainActivity mainActivity; public JavaJsBridge(MainActivity mainActivity) { this.mainActivity=mainActivity; } public void jsCallNative() { mainActivity.trigger(); } }
你的H5页面的js,你可以写一个button触发js对应的函数
函数里面加一句就行
jsBridge.jsCallNative();