hanyeah 专注于AS

js调用android的版本兼容问题(转)

转自: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()" />


2016年7月12日 | 发布:hanyeah | 分类:Android | 评论:0

发表留言: