Web 注入需要注入多个JsObject - HarmonyOS 鸿蒙Next
Web 注入需要注入多个JsObject - HarmonyOS 鸿蒙Next
Web({ src: 'www.example.com', controller: this.controller })
.javaScriptAccess(true)
.javaScriptProxy({
object: this.testObj,
name: "objName",
methodList: ["test", "toString"],
controller: this.controller,
})
这个javaScriptProxy只能注入单个, 但实际是需要多个。 类似android 的WebView注入是多个的。
// 这是Android的webview
public void addJavascriptInterface(Object obj, String interfaceName) {
}
更多关于Web 注入需要注入多个JsObject - HarmonyOS 鸿蒙Next的实战教程也可以访问 https://www.itying.com/category-93-b0.html
Web组件暂不支持javaScriptProxy属性方法注入多个JavaScript对象,最后注入的对象会覆盖之前的。
如果需要注入多个对象,可以在例如Web组件onControllerAttached生命周期中通过WebviewController.registerJavaScriptProxy接口注入多个JavaScript对象。
更多关于Web 注入需要注入多个JsObject - HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS中,Web注入多个JsObject可以通过WebView
的JavaScriptProxy
机制实现。首先,创建多个自定义的JsObject类,每个类包含需要在Web页面中调用的方法。然后,通过WebView
的addJavaScriptProxy
方法将这些JsObject注入到Web页面中。每个JsObject会被映射为Web页面中的一个JavaScript对象,允许Web页面直接调用这些对象的方法。
例如,假设有两个JsObject类JsObjectA
和JsObjectB
,分别包含方法methodA
和methodB
。可以通过以下代码将它们注入到WebView
中:
let webView = new WebView();
let jsObjectA = new JsObjectA();
let jsObjectB = new JsObjectB();
webView.addJavaScriptProxy(jsObjectA, "jsObjectA");
webView.addJavaScriptProxy(jsObjectB, "jsObjectB");
在Web页面中,可以直接通过jsObjectA.methodA()
和jsObjectB.methodB()
调用这些方法。通过这种方式,可以灵活地将多个JsObject注入到Web页面中,实现更复杂的前端与原生代码的交互。