HarmonyOS 鸿蒙Next web组件中,js调用native的函数中,无法显示@CustomDialog组件

发布于 1周前 作者 phonegap100 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next web组件中,js调用native的函数中,无法显示@CustomDialog组件

api 12; web组件中,js调用native的函数中,无法弹出@CustomDialog组件

2 回复

试下在页面构建对象时传入CustomDialogController,如:

import web_webview from '[@ohos](/user/ohos).web.webview';
class testClass {
 functionAddController?: CustomDialogController
 constructor(functionAddController?: CustomDialogController) {
   this.functionAddController = functionAddController
 }
 test() {
   this.functionAddController?.open()
 }
}
[@CustomDialog](/user/CustomDialog)
export struct CustomDialogExample {
 dialogController ?: CustomDialogController
 build() {
   Text('CustomDialogExample').fontSize(20)
 }
}
[@Entry](/user/Entry)
[@Component](/user/Component)
export struct WebDialogDemo1 {
 webviewController: web_webview.WebviewController = new web_webview.WebviewController();
 functionAddController: CustomDialogController = new CustomDialogController({
   builder: CustomDialogExample(),
 })
 // 声明需要注册的对象
 [@State](/user/State) testObj: testClass = new testClass(this.functionAddController);
 build() {
   Column() {
     Text('openCustomDialog')
       .fontSize(25)
       .onClick(() => {
         this.functionAddController.open()
       })
       .margin(50)
     Web({ src: $rawfile('jsCustomDialog.html'), controller: this.webviewController })// 将对象注入到web端
       .javaScriptProxy({
         object: this.testObj,
         name: "testObjName",
         methodList: ["test"],
         controller: this.webviewController
       })
   }
 }
}

针对HarmonyOS鸿蒙Next web组件中,js调用native的函数中无法显示@CustomDialog组件的问题,这通常是由于组件的初始化或绑定状态异常导致的。

在HarmonyOS中,@CustomDialog组件的显示依赖于其controller的正确初始化和绑定。如果在js调用native函数的过程中,controller没有正确初始化或者绑定状态丢失,就会导致@CustomDialog无法显示。

为了解决这个问题,可以尝试以下方法:

  1. 确保@CustomDialog的controller在组件内定义并正确初始化。
  2. 检查js调用native函数时,controller的传递和绑定是否正确。
  3. 如果controller是在多个页面或组件间传递,考虑使用全局变量或管理策略来保持其绑定状态。

如果以上方法仍然无法解决问题,可能是由于系统级的bug或特定环境下的兼容性问题。此时,建议联系HarmonyOS的官方客服以获取更专业的帮助。官网地址是:https://www.itying.com/category-93-b0.html

回到顶部