12
2016
07

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


« 上一篇下一篇 »

相关文章:

js的parseInt方法  (2019-2-15 9:12:44)

闪电效果  (2017-11-28 15:4:19)

js中判断一个对象的类型  (2017-3-30 14:27:35)

安卓原生控件做时钟  (2017-3-3 16:48:11)

安卓利用反射调用@Hide隐藏函数  (2017-3-3 10:2:2)

安卓zxing实现二维码扫描  (2017-2-20 13:42:56)

解九连环  (2016-12-1 20:58:11)

DataURL与File,Blob,canvas对象之间的互相转换的Javascript  (2016-11-25 14:58:41)

js生成条形码-barcode  (2016-10-12 15:59:51)

eclipse代码格式化换行宽度设置   (2016-10-11 16:7:43)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。