我正在开发web应用程序,我们正在尝试使用Java脚本api访问手机中的本机功能。
Android Web视图支持"AddJavascript"接口,用于Java脚本到Java(本地)绑定,如下面的链接
http://developer.android.com/reference/android/webkit/WebView.html addJavascriptInterface (java . lang . object,以)
但是如果我需要将数据传递回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开发。
正如我在android-developers
谷歌组交叉发布这篇文章时所写的:
调用
loadUrl("javascript:...")
,其中...
是您的JavaScript源代码。该JavaScript源代码将在的上下文中执行当前加载的任何Web页面。这是相同的技术使用"书签"。