如何将复杂对象从Java 传输到Android WebView 中的JS?
How to transfer complex objects from Java to JS in Android WebView?
IOS平台支持这种功能,但Android不支持。
i-os UIWebView 支持的类型在以下 URL 中进行了描述
事实上,您可以 return 其他 Java 个对象,而不仅仅是来自注入对象方法的原始类型。考虑这个简化的例子:
Java:
class MyObject {
class Transport {
@JavascriptInterface
public int getField() { ... }
}
@JavascriptInterface
public Object getTransport() { return new Transport(); }
}
webView.addJavascriptInterface(new MyObject(), "myObject");
Java脚本:
{
...
var transport = myObject.getTransport();
return transport.getField();
}
Java 和 JavaScript 对象存在于不同的堆上,因此您无论如何都必须复制数据。
IOS平台支持这种功能,但Android不支持。
i-os UIWebView 支持的类型在以下 URL 中进行了描述
事实上,您可以 return 其他 Java 个对象,而不仅仅是来自注入对象方法的原始类型。考虑这个简化的例子:
Java:
class MyObject {
class Transport {
@JavascriptInterface
public int getField() { ... }
}
@JavascriptInterface
public Object getTransport() { return new Transport(); }
}
webView.addJavascriptInterface(new MyObject(), "myObject");
Java脚本:
{
...
var transport = myObject.getTransport();
return transport.getField();
}
Java 和 JavaScript 对象存在于不同的堆上,因此您无论如何都必须复制数据。