安卓通过js与网页的H5页面进行交换

常见遇到的需求是,从网页端调起本地的分享或者支付等……

思路是APP端与H5页面协定好一个方式,来调用APP里面的方法。

H5本地交换的js

  • 安卓需要写的代码:
    /**AndroidJavaScript
     * 本地与h5页面交互的js类,这里写成内部类了
     * returnAndroid方法上@JavascriptInterface一定不能漏了
     */
    private class AndroidJavaScript  {
        Context mContxt;

        public AndroidJavaScript (Context mContxt) {
            this.mContxt = mContxt;
        }

        @JavascriptInterface
        public void returnAndroid(String name) {//从网页跳回到APP
            if (name.isEmpty()||name.equals("")){
                return ;
            }
            //这里写你的操作///////////////////////
            Intent intent = new Intent(WebActivity.this, MainActivity.class);
            intent.putExtra("name",name);
            startActivity(intent);
        }
    }
  • 给目标webview设置,
mWebView.addJavascriptInterface(new AndroidJavaScript(getApplication()), "android");

H5写法:

<a href='JavaScript:android.returnAndroid("要返回给APP的数据")'>点击我跳回APP</a>

注意:

  • 小心,就是字母大小写问题,传参数也要对才行,写错就调用不起来了(android、returnAndroid())

  • returnAndroid方法上@JavascriptInterface一定不能漏了。

  • 所有要被H5调用的方法都要加上@JavascriptInterface,安卓4.2后就要添加上这个就能用js


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值