转自:http://blog.csdn.net/roserose0002/article/details/17414759
1,在android API Level 17及以上的版本中,就会出现js调用不了android的代码,这是版本兼容的问题,需要在调用的方法上面加一个注解:@JavascriptInterface,这个注解需要导入一个包:import android.webkit.JavascriptInterface;
下面是代码:
@Override public void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); this.loadUrl("file:///android_asset/www/index.html"); //给js设置调用的方法 this.appView.addJavascriptInterface(new JavaScripdtObject(), "android"); } /** * 供js调用的对象方法 * * @author YUJIAN * */ public class JavaScripdtObject { @JavascriptInterface//加入这个注解 public void runAndroidMethod(String str) { Toast.makeText(MainActivity.this, "被js调用"+str, Toast.LENGTH_SHORT) .show(); } }
//js代码
<script> function getNode4() { var str = "javascrip木德"; //调用android代码 window.android.runAndroidMethod(str); } </script> <input type="button" value="获取页面中的节点" onclick="getNode4()" />
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。