HarmonyOS Web组件前端页面调用应用侧函数,在页面关闭后再次打开无法触发的问题

@Entry
@Component
export default struct WebView {
  controller: web_webview.WebviewController = new web_webview.WebviewController()
  @State url: string = ''

  build() {
    Column() {
      Web({ src: this.url, controller: this.controller })
        .javaScriptProxy({
          object: this.jsHandler,
          name: "testObjName",
          methodList: ["test"],
          controller: this.controller
        })
    }
    .width('100%')
    .height('100%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

上面的代码中通过javaScriptProxy方式注入后,该函数可以在前端页面触发运行,但当页面执行router.back()关闭再次打开页面就无法被触发了。是否有办法让它每次被打开都能触发?

HarmonyOS
2024-12-25 13:48:52
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
FengTianYa

可以写在onControllerAttached回调里,参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#oncontrollerattached10

通过registerJavaScriptProxy注册,文档地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#registerjavascriptproxydeprecated

参考示例:

Web({ src: : this.url,, controller: this.controller }) .javaScriptAccess(true).onControllerAttached(()=>{
  this.controller.registerJavaScriptProxy(this.testOjb, "testObjName", ['toString','test']);
  this.controller.refresh();
})
  • 1.
  • 2.
  • 3.
  • 4.
分享
微博
QQ
微信
回复
2024-12-25 17:23:08
相关问题
HarmonyOS Web组件打开pdf页面
726浏览 • 1回复 待解决
HarmonyOS h5前端调用应用侧方法
661浏览 • 2回复 待解决
HarmonyOS Web组件无法加载页面
873浏览 • 1回复 待解决
HarmonyOS 页面关闭问题
513浏览 • 1回复 待解决
HarmonyOS WebView组件前端页面调试
1307浏览 • 1回复 待解决
HarmonyOS 应用访问前端页面方法
730浏览 • 1回复 待解决
鸿蒙web组件再次加载问题
676浏览 • 0回复 待解决
HarmonyOS web组件无法打开
662浏览 • 1回复 待解决