addJavascriptInterface让我们将一个java对象注入到Android Web视图的javascript中。关于每个javascript类型可以在该对象的函数参数参数中转换成哪些java类型的文档?
某些类型的转换(字符串,整数等)是显而易见的,但有些则不那么明显。 javascript列表对应的java类型是什么?一个物体怎么样?或ArrayBuffer?
答案 0 :(得分:0)
您必须在Object
签名中为此addJavascriptInterface
设置翻译人员。
要绑定JavaScript和Android代码之间的新接口,请调用addJavascriptInterface(),将类实例传递给您的JavaScript以及JavaScript可以调用以访问该类的接口名称
您必须提供Javascript
翻译此对象的方法,我猜您正在寻找像JSON这样的内容,您有JSONObject.java
这样的大量课程Map
} {s}或JSONArray.java
代表array
或List
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选项
也许不是你在等待表格的答案......但恕我直言,你没有任何其他机会。