webview与js交互传递参数之参数类型

js中有如下方法:
接收一个字符串参数

 function test(data){
 
 }

原生调用:

val obj= JSONObject()
obj.put("key","123")
obj.put("value","234")
val params = obj.toString()
execJsFunction("${MacConstant.JAVASCRIPT}:window.test($params)")

这种方式传参实际参数类型并不是string而是对象object,如果js中再通过JSON.stringify(data)去解析就会报错。

正确传参方式:

val obj= JSONObject()
obj.put("key","123")
obj.put("value","234")
val params = obj.toString()
 execJsFunction("${MacConstant.JAVASCRIPT}:window.test('" + params+ "')")

这样js中接收的就是一个jsonobject的string形式参数,前端通过stringify解析参数。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Webview中,我们可以通过Javascript与Java进行交互,并实现参数的传递。 首先,我们可以通过Javascript的eval方法调用Java中的方法,从而将参数传递给Java。在Javascript中,可以使用以下代码调用Java方法并传递参数: ```javascript window.android.methodName(parameter); ``` 这里的`window.android`是一个Java对象的引用,`methodName`是Java中的方法名,`parameter`是要传递的参数。在Java中,我们需要创建一个与Javascript交互的类,如下所示: ```java public class JavascriptInterface { private Context context; public JavascriptInterface(Context context) { this.context = context; } @JavascriptInterface public void methodName(String parameter){ // 处理接收到的参数 } } ``` 在创建WebView时,我们需要将这个Java类与WebView进行绑定,如下所示: ```java webView.addJavascriptInterface(new JavascriptInterface(this), "android"); ``` 最后,我们需要在WebView加载网页时,将Javascript的调用代码嵌入到网页中。可以通过WebView的`loadUrl`方法加载网页,在网页中使用以下代码可以调用Java方法并传递参数: ```html <script> window.onload = function(){ window.android.methodName('parameter'); } </script> ``` 以上就是通过WebView实现Javascript向Java传递参数的方法。通过创建JavascriptInterface类,并在WebView中添加JavascriptInterface对象,我们可以在Javascript中调用Java方法并传递参数,实现了双方的交互

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值