我在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对象传递给本机方法?
由于
答案 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)