Android - 将JSON对象从webview javascript传递给java

时间:2014-02-25 21:58:46

标签: javascript android json webview

我在java端有一个带有webview和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对象传递给本机方法?

由于

2 个答案:

答案 0 :(得分:1)

@ 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);
      }
   }
}

答案 1 :(得分:1)

您可以使用GSON库或类似方法为Java对象创建Stringified JSON,并在JS端创建JSON.Stringify(data)