[android]Java脚本到Java本地绑定& &;亦然

[android]Java script to Java native Bindings & vice versa

本文关键字:Java 绑定 亦然 android 脚本      更新时间:2023-09-26

我正在开发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页面。这是相同的技术使用"书签"。