android之WebView与h5交互

项目中有这么一个需求:

点击邀请好友按钮,跳转到邀请的h5页面,然后点击h5页面的”立即赚钱”按钮,调起本地分享。

图1



可以看到,h5页面中有数据,这个是需要根据token userId去请求获取的,当然,这个请求需要web端发送,所以app端需要将两个参数传给web端。

怎么传呢?

这里记录一种我们这边使用的方式:就是android本地定义方法,并通过addJavascriptInterface(SharedWebViewActivity.this,"seven")方法将定义了回调方法的对象注入到WebView中,而且定义了的对象的引用名称。

这样web端就可以使用这个名称调用android本地的方法。

具体是android端使用WebView加载邀请的h5页面的url(web端提前给到客户端), web端页面开始加载的时候调用定义好的本地方法,用于获取到需要的参数。


/**
 * 获取用户token
 *
 * @return
 */
@SuppressLint("JavascriptInterface")
@JavascriptInterface
public String getUserToken() {
    return SPUtils.getString(SPConstantUtils.ACCESS_TOKEN, "");
}

/**
 * 传递加密后的userId
 */
@SuppressLint("JavascriptInterface")
@JavascriptInterface
public String getUserId() {
    return encodeUserId;
}

web端拿到这两个必须的请求参数后,会去请求后台,最终将一个完整的h5页面呈现给客户端。

然后点击h5页面的立即赚钱按钮,将分享链接传给客户端,同时调起客户端分享方法。

图2



接着就可以将分享链接分享到目的地,实现分享。

Web端部分代码:

$(document).ready(function () {
    var userId = "";
    var Token = "";
    var size = 20;
    // 获取userId方法
    function getUserId() {
        Token = ssxj.getUserToken();
        userId = encodeURIComponent(ssxj. getUserId());
    }
    /*
        分享好友方法
    */
    function shareFriends(){
        seven.shareResult(anyCashUrl.shareResultUrl+userId);
    }
 
    // 规则点击弹出层显示隐藏
    $(".share-detail-rules").click(function () {
        $(".share-layer").addClass("active");
        $(".share-detail-warp").addClass("overflow-hidden");
    });
    $(".close-btn").click(function () {
        $(".share-layer").removeClass("active");
        $(".share-detail-warp").removeClass("overflow-hidden");
    });
    //点击”立即赚钱”
    $(".share-btn").click(function () {
        shareFriends();
    });

});

android端:


/**
 * 邀请分享
 *
 * @param shareUrl 分享地址
 */
@SuppressLint("JavascriptInterface")
@JavascriptInterface
public void shareResult(String shareUrl) {
    Message shareMsg = new Message();
    shareMsg.what = SHARESUCCESS;
    Bundle mBundle = new Bundle();
    mBundle.putString("shareUrl", shareUrl);
    shareMsg.setData(mBundle);
    shareHandle.sendMessage(shareMsg);

}

接收h5传递过来的分享链接。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值