2011-08-12 31 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源将在 的上下文中执行,无论目前加载哪个网页。这与“小书签”使用的技术相同。