2011-08-12 54 views
0

我正在開發Web應用程序,我們正嘗試使用Java腳本API訪問手機中的Native功能。[android] Java腳本到Java本地綁定(反之亦然)

Android的Web視圖支持 「AddJavascript」 界面的Java腳本的Java(本地)綁定,如下面的鏈接

http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,java.lang.String中)

,但如果我需要回傳數據Java腳本沒有API或機制在Android中這樣做。 可以在任何請讓我知道是否有出,拼命使用JSON如下使用JSON

我們不能通過各種值與JS

HTML提前

<script id="source" language="javascript" type="text/javascript"> 
    function OnClick(){  
    var nativeStr = window.native.getValue(); 
    window.native.callBack(); 
    } 

function JScallback(data) { 
} 
</script> 


WebView wv = (WebView) findViewById(R.id.MyWebView); 

NativeClass myNative = new NativeClass (wv); 

wv.getSettings().setJavaScriptEnabled(true); 
wv.addJavascriptInterface(myNative, "native"); 
wv.loadUrl("file:///html/test.html"); 

public class NativeClass{ 

private WebView mWebView; 

public NativeClass (WebView appView) { 
    this.mWebView = appView; 
} 

public String getValue() { 
    return "Native Value"; 
} 


public void callBack() { 
JSONArray arr = new JSONArray(); 

JSONObject result = new JSONObject(); 
try { 
    result.put("Name", "Android Dev"); 
    arr.put(result); 
} catch (Exception ex) { 

}  

mWebView.loadUrl("javascript:JScallback(" + arr.toString() + ")"); 

} 

感謝, Android的一種方式開發。

回答

0

正如我寫的,當你cross-posted thisandroid-developers谷歌組:

電話loadUrl("javascript:..."),其中...是你的JavaScript 源代碼。該JavaScript源將在 的上下文中執行,無論目前加載哪個網頁。這與「小書籤」使用的技術相同。