自定义 class 需要访问 WebComponent 中的 webViewController。
自定义 class 中持有了 WebComponent 中的 webViewController,当前端代码调用invoke方法与webview通信时,只要invoke方法中使用了当前类的this,应用就会崩溃,代码片段如下:
// 自定义类WebViewBridge:
import web_webview from '@ohos.web.webview';
export default class WebViewBridge {
webViewController: web_webview.WebviewController;
// 是否已经执行完了onFirstScript方法,默认未执行
constructor(webviewController: web_webview.WebviewController) {
this.webViewController = webviewController;
}
public invoke(){
console.log('-----', !this)
this.webViewController.runJavaScript("");
}
}
// webview组件类:
import web_webview from '@ohos.web.webview';
import WebViewBridge from './WebViewBridge';
@Entry
@Component
struct WebComponent {
webviewController: web_webview.WebviewController = new web_webview.WebviewController();
webViewBridge: WebViewBridge = new WebViewBridge(this.webviewController);
aboutToAppear(){
web_webview.WebviewController.setWebDebuggingAccess(true);
}
build() {
Column() {
// 组件创建时,通过$rawfile加载本地文件local.html
Web({ src: $rawfile('template.html'), controller: this.webviewController })
.javaScriptAccess(true)
.javaScriptProxy({object: this.webViewBridge, name: 'NativeBridge',
methodList: [
'invoke',
], controller: this.webviewController},
)
.onPageBegin(() => {
this.webviewController.setCustomUserAgent('Android OpenHarmony')
console.log('------>onPageBegin')
})
}
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
如何访问自定义文件?
320浏览 • 1回复 待解决
自定义日历组件,开发中,自定义生成需要的日历格式方法有哪些?
398浏览 • 1回复 待解决
Native与TS互传自定义obj class
452浏览 • 1回复 待解决
自定义弹窗的控制器(CustomDialogController)如何封装在普通class中
430浏览 • 1回复 待解决
json字符串与自定义class结构的转换
547浏览 • 1回复 待解决
自定义弹窗自定义转场动画
382浏览 • 1回复 待解决
自定义组件中如何添加图片?
1113浏览 • 1回复 待解决
NAPI中定义并注册Class
295浏览 • 1回复 待解决
鸿蒙中如何自定义字体文件
17785浏览 • 1回复 待解决
如何在自定义弹窗中再次弹窗
804浏览 • 1回复 待解决
注册的自定义字体在 webview 中无效
776浏览 • 1回复 待解决
如何理解自定义弹窗中的gridCount参数
798浏览 • 1回复 待解决
自定义弹窗中的变量如何传递给页面
939浏览 • 1回复 待解决
自定义弹窗能否在ts文件中定义和使用
666浏览 • 1回复 待解决
自定义弹框如何宽度全屏,高度自定义
539浏览 • 1回复 待解决
如何实现一个自定义的Controller? 自定义的Controller与自定义的组件page如何进行交互?
603浏览 • 1回复 待解决
自定义扫码功能,API11提供的自定义扫码功能,如何自定义扫码识别框的宽高?
468浏览 • 1回复 待解决
自定义Dialog,怎么给自定义Dialog设置其他背景色
399浏览 • 1回复 待解决
怎么实现自定义弹窗1打开自定义弹窗2
701浏览 • 1回复 待解决
自定义弹窗,自定义弹窗的使用更加灵活,适用于更多的业务场景
367浏览 • 1回复 待解决
自定义键盘需要获取到当前光标位置,应该如何获取
582浏览 • 1回复 待解决
hvigor自定义扩展demo
301浏览 • 1回复 待解决
IDE无法识别在自定义方法中做的检测
478浏览 • 1回复 待解决
自定义装饰器的使用问题
209浏览 • 0回复 待解决
自定义弹窗边界问题,自定义弹窗怎么设置左右边框的margin效果。
421浏览 • 1回复 待解决
将自定义类webviewBridge中的invoke方法改成箭头函数即可,示例代码: