1.创建一个mainacvity 在oncreate中加入,
mWeb是一个webview组件,网络权限记得自己加.
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
1 mWeb.setWebViewClient(new WebViewClient(){ 2 @Override 3 public boolean shouldOverrideUrlLoading(WebView view, String url) { 4 //返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器 5 view.loadUrl(url); 6 return true; 7 } 8 }); 9 mWeb.addJavascriptInterface(new MainActivity(),"mainactivity"); //创建js与代码交互接口对象
mWeb.loadUrl("file:///android_asset/i.html"); //加载assert下的i.html
mainactivity,方便 js访问此对象,直接写this应该也可以
mainactivity实现test方法如下:
@JavascriptInterface//api 17以上必须加入这行,否则调不起来
public void test(final String destActivity) { //Toast.makeText(this, "对不起,跳转页面出现异常", Toast.LENGTH_SHORT).show(); Log.d("111", "111111111111111111"); }
i.html中内容如下:就是调用上面这个对象的test方法,
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <script type="text/javascript"> </script> <title></title> </head> <body> <input type="button" value="返回安卓的某一个界面" onclick="window.mainactivity.test('')"/> </body> </html>
最终按钮会换发activity中的test方法