中国优质的IT技术网站
专业IT技术创作平台
IT职业在线教育平台
当页面有一个加载H5内容的Web时,H5内容通过调用与HarmonyOS原生内容交互桥方法,在这个桥方法中,如果使用了CustomDialog,代码不会异常,但页面上dialog并不会显示。
微信扫码分享
import web_webview from ‘@ohos.web.webview’; @Entry @Component export struct thirdPage { webviewController: web_webview.WebviewController = new web_webview.WebviewController(); functionAddController: CustomDialogController = new CustomDialogController({ builder: TestCustomDialog(), customStyle: true, }) // 声明需要注册的对象 @State testObj: testClass = new testClass(this.functionAddController); build() { Column() { Text(‘直接调用’).fontSize(40).fontColor(0xff000000).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 }) } } } class testClass { functionAddController?: CustomDialogController constructor(functionAddController?: CustomDialogController) { this.functionAddController=functionAddController } test(): string { // let functionAddController: CustomDialogController = new CustomDialogController({ // builder: TestCustomDialog(), // customStyle: true, // }) this.functionAddController?.open() return ‘ArkTS Hello World!’; } } @CustomDialog export struct TestCustomDialog { dialogController ?: CustomDialogController build() { Text(‘TestCustomDialog’).fontSize(50).fontColor(0xffff0000) } }