Android – передача объекта JSON из webview javascript в java

У меня есть Activity с веб-просмотром и javascript-интерфейсом на стороне java. Я хотел бы написать метод на Java, который может принять json-параметр из webview.

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

На моем веб-браузере javascript Я звоню:

 MyAPI.test({ a: 1, b: 2 }); 

Но переменная данных равна нулю.

Как передать объекты JSON из webview javascript в собственный метод?

благодаря

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

Вы можете использовать библиотеку GSON или аналогичную для создания объекта Stringified JSON для Java, а JSON.Stringify(data) на стороне JS