gpt4 book ai didi

android - addJavascriptInterface 的 js 类型转换的文档在哪里?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:40 25 4
gpt4 key购买 nike

addJavascriptInterface让我们将 java 对象注入(inject)到 Android web View 的 javascript 中。关于每个 javascript 类型可以在该对象的函数参数参数中转换成哪些 java 类型的文档在哪里?

有些类型转换(字符串、整数等)很明显,但有些则不那么明显。 javascript列表对应什么java类型?对象呢?或者 ArrayBuffer

最佳答案

您必须在 addJavascriptInterface 签名中为该 Object 提供翻译器。

To bind a new interface between your JavaScript and Android code, call addJavascriptInterface(), passing it a class instance to bind to your JavaScript and an interface name that your JavaScript can call to access the class.

您必须为您的 Javascript 提供一种翻译此对象的方法,我猜您正在寻找类似 JSON 的内容,您有很多类,例如用于 MapJSONObject.java 或用于 arrayJSONArray.java列表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将确认您必须在 View 中使用 JSON 来解析它们...

I have not seen a list of valid types (for passing values to Java functions and to return), but only primitives and string seem to work. You can use JSON (e.g. stringify and parse in Javascript, check various Java options at json.org

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

关于android - addJavascriptInterface 的 js 类型转换的文档在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31158751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com