Web组件通过javaScriptProxy方法注册多个javascript对象,只会保留最后一个注册的javascript对象

现在需要注册多个对象,但是发现通过javaScriptProxy方法注册多个对象时,会冲掉之前注册的对象,只会保留最后一个注册的对象。

HarmonyOS
2024-11-06 09:17:20
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

​Web组件暂不支持javaScriptProxy属性方法注入多个JavaScript对象,最后注入的对象会覆盖之前的。可以在例如Web组件onControllerAttached生命周期中通过WebviewController.registerJavaScriptProxy接口注入多个JavaScript对象。

示例代码​:

Web({ src:‘www.harmonyOS.com’, controller: this.webviewController }) 
  .onControllerAttached(() => { 
    try { 
      this.webviewController.registerJavaScriptProxy(this.testObjtest1, 'JSBridge1', ['toString','test']); 
      console.error(`Invoke webviewController.registerJavaScriptProxy JSBridge1 succeed!`); 
      this.webviewController.registerJavaScriptProxy(this.testObjtest2, 'JSBridge2', ['test','toString']); 
      console.error(`Invoke webviewController.registerJavaScriptProxy JSBridge2 succeed!`); 
    } catch (err) { 
      console.error(`Invoke webviewController.registerJavaScriptProxy failed! err: ${JSON.stringify(err)}`); 
    } 
  })

​参考链接:​https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-webview-V5#registerjavascriptproxy

分享
微博
QQ
微信
回复
2024-11-06 15:47:27
相关问题
HarmonyOS WebJavaScript交互
39浏览 • 1回复 待解决
PersistentStorage如何持久化一个对象?
2825浏览 • 1回复 待解决
如何判断一个对象是否在对象数组中
2475浏览 • 1回复 待解决
如何定义一个未知类型对象
909浏览 • 2回复 待解决