Android 网页交互详解和mWebview.evaluateJavascript带参数注意事项

android 4.4以下跟H5交互需要调用webview的loadUrl(javascript:方法名(参数))来实现调用js方法。如果需要网页获取返回值还需要网页调用安卓 @JavaScriptInterface  注解的方法才可以。

Android 4.4以上调用webview.evaluateJavascript(javascript:方法名(参数),new ValueCallback{

public void onReciveValue(String value){}

})来实现调用js方法,同时能够获取网页返回的数据。

需要注意的是如果单纯参数递的是json格式的字符串,网页接受到的会是json对象。例如:

                        String payId = jsonObj.optString("payId");
                        JSONObject result = new JSONObject();
                        result.put("payId", payId);
                        String s = result.toString();
                        String js = "javascript:" + functionName + "(" + s + ")";
                        mWebview.evaluateJavascript(js, new ValueCallback<String>() {
                            @Override
                            public void onReceiveValue(String value) {
                                LogUtil.e(TAG, "getPayId onReceiveValue " + functionName);
                            }
                        });

网页接收到的是一个json对象,但苹果一般传给网页的是一个json格式的字符串,后台经常需要统一处理。这种情况下需要修改如下,此时网页收到的也会是一个json格式的字符串。

                        String payId = jsonObj.optString("payId");
                        JSONObject result = new JSONObject();
                        result.put("payId", payId);
                        String s = result.toString();
                        String js = "javascript:" + functionName + "('" + s + "')";
                        mWebview.evaluateJavascript(js, new ValueCallback<String>() {
                            @Override
                            public void onReceiveValue(String value) {
                                LogUtil.e(TAG, "getPayId onReceiveValue " + functionName);
                            }
                        });

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值