我正在开发Web应用程序,我们尝试使用Java脚本API访问手机中的Native功能。
Android Web视图支持Java脚本到Java(本机)绑定的“AddJavascript”接口,如下面的链接
http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,java.lang.String)
但是如果我需要将数据传回Java脚本,那么在Android中没有API或机制可以这样做。 请问有没有办法让我知道如果有出路,请使用JSON努力尝试如下我们无法使用JSON传递所有类型的值
HTML with JS
<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 Dev。
答案 0 :(得分:0)
正如我cross-posted this向android-developers
Google小组写的那样:
致电
loadUrl("javascript:...")
,其中...
是您的JavaScript 源代码。该JavaScript源代码将在上下文中执行 任何目前加载的网页。这是同样的技术 “bookmarklets”使用。