android webView中可实现
说明:
1. AndroidManifest.xml中必须注册"android.permission.INTERNET"进行权限许可,(如果只是使用本地HTML,可以不用注册许可权限)否则会出Web page not available错误
2. 要使用js 必须开启webView的js 支持:
webview.getSettings().setJavaScriptEnabled(true);
Android端startFunction()方法 和 平台端updateHtml()方法互调示例:
java中调用 html中的js 方法 | 在 html中调用java 里面的方法 | |
说明 | ||
Android端 | //执行JavaScript的updateHtml()方法 button.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { webview.loadUrl("javascript:updateHtml()"); } }); | //增加接口login、方法startFunction(),让html页面调用 //this为startFunction()所在类的实例 webview.addJavascriptInterface(this,"login"); public void startFunction(){ Toast.makeText(mContext,"android端:startFunction()运行。", Toast.LENGTH_LONG).show(); } |
平台端 | //声明updateHtml()方法 <script type="text/javascript"> function updateHtml(){ document.getElementById("content").innerHTML = "平台:执行updateHtml()方法"; } </script> | //调用android端的java方法startFunction() <a onClick="window.login.startFunction()" href="";>调用java中的方法</a> |
本地Html可使用路径:
file:///android_asset/demo.html
Q1.
Uncaught TypeError: Cannot call method 'share' of undefined at http://192.168.40.***:8080/test.html:29
是android SDK版本问题:在4.2.2上有这个问题 4.1.2以下就没有