安卓 - 从Webview Javascript传递JSON对象到Java

5

我有一个带有Webview和Java端JavaScript接口的Activity。我想在Java中编写一个方法,该方法可以从Webview接受一个JSON参数。

@JavascriptInterface
public String test(Object data) {
    Log.d("TEST", "data = " + data);
}

在我的Webview上,我调用JavaScript:
MyAPI.test({ a: 1, b: 2 });

但是数据变量为空。

我如何将来自Webview JavaScript的JSON对象传递到本地方法中?

谢谢


3
只能传递字符串和基本数据类型。 - njzk2
2个回答

3
你可以使用 GSON 库或类似的工具来创建将 JSON 字符串转换成 Java 对象,JS 端使用 JSON.stringify(data)

2

@njzk2是对的,就这样做:

在JAVA中:

@JavascriptInterface
public String test(String data) {
   Log.d("TEST", "data = " + data);
   return "this is just a test";
}

在JS中:
// some code 
var result = test("{ a: 1, b: 2 }");
alert(result);
//some code

function test(args) {
   if (typeof Android != "undefined"){ // check the bridge 
      if (Android.test!= "undefined") { // check the method
         Android.test(args);
      }
   }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接