转自: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()" />
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。