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解析参数。