有关js类型转换的文档的地址为addJavascriptInterface?

时间:2015-07-01 10:26:23

标签: android android-webview

addJavascriptInterface让我们将一个java对象注入到Android Web视图的javascript中。关于每个javascript类型可以在该对象的函数参数参数中转换成哪些java类型的文档?

某些类型的转换(字符串,整数等)是显而易见的,但有些则不那么明显。 javascript列表对应的java类型是什么?一个物体怎么样?或ArrayBuffer

1 个答案:

答案 0 :(得分:0)

您必须在Object签名中为此addJavascriptInterface设置翻译人员。

  

要绑定JavaScript和Android代码之间的新接口,请调用addJavascriptInterface(),将类实例传递给您的JavaScript以及JavaScript可以调用以访问该类的接口名称

您必须提供Javascript翻译此对象的方法,我猜您正在寻找像JSON这样的内容,您有JSONObject.java这样的大量课程Map } {s}或JSONArray.java代表arrayList s。 Here you can find more classes

更新
如果您查看API,可以看到如何将对象传递给Javascript

class JsObject {
    @JavascriptInterface
    public String toString() { return "injectedObject"; }
}
webView.addJavascriptInterface(new JsObject(), "injectedObject");
webView.loadData("", "text/html", null);
webView.loadUrl("javascript:alert(injectedObject.toString())");

并在this answer中确认您必须使用JSON在视图中解析它们...

  

我还没有看到有效类型的列表(用于将值传递给Java函数并返回),但只有原语和字符串似乎有效。   您可以使用JSON(例如,在Javascript中进行字符串化和解析,在json.org上检查各种Java选项

也许不是你在等待表格的答案......但恕我直言,你没有任何其他机会。