js调用android中方法的版本兼容问题

3 篇文章 0 订阅
2 篇文章 0 订阅

在android API Level 17及以上的版本中,就会出现js调用不了android的代码,这是版本兼容问题,之前做过相关的东西查了好久才找到相关答案。

需要在调用的方法上面加一个注解:@JavascriptInterface,这个注解需要导入一个包:import android.webkit.JavascriptInterface; 

下面是代码:

android端java代码

@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调用代码:

function getNode4()
{
    var str = "javascrip木德";
     
    //调用android代码
    window.android.runAndroidMethod(str);
     
}
</script>
 
<input type="button" value="获取页面中的节点" οnclick="getNode4()" />

在引用中再加入

import android.webkit.JavascriptInterface
这个引用即可

原文: 点击打开链接



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值