2014-02-25 112 views
4

我有一個活動,在java端的webview和javascript接口。我想寫一個Java的方法,可以接受來自webview的json參數。Android的 - 從webview javascript傳遞JSON對象到java

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

在我的WebView的JavaScript我打電話:

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

但數據變量爲空。

我怎樣才能將JSON對象從webview javascript傳遞到本地方法?

感謝

+3

你只能傳遞字符串和原語。 – njzk2

回答

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

您可以使用GSON庫或類似創建String化的JSON到Java對象,以及關於JS的JSON.Stringify(data)

相關問題