5

I have an Activity with a webview and a javascript interface on the java side.I would like to write a method in Java that can accept a json paramater from the webview.

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

on my webview javascript I call:

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

but the data variable is null.

How can I pass JSON objects from webview javascript into native method?

Thanks

1
  • 3
    You can only pass Strings and primitives. Commented Feb 25, 2014 at 22:01

2 Answers 2

3

You can use GSON library or similar to create Stringified JSON to Java object, and JSON.stringify(data) on JS side

Sign up to request clarification or add additional context in comments.

Comments

2

@njzk2 is right, do it like this:

In JAVA:

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

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.