自定义 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
待解决
相关问题
如何访问自定义文件?
714浏览 • 1回复 待解决
自定义日历组件,开发中,自定义生成需要的日历格式方法有哪些?
1435浏览 • 1回复 待解决
自定义弹窗的控制器(CustomDialogController)如何封装在普通class中
2295浏览 • 1回复 待解决
Native与TS互传自定义obj class
990浏览 • 1回复 待解决
json字符串与自定义class结构的转换
2143浏览 • 1回复 待解决
HarmonyOS 如何在一个class中创建一个自定义弹框
13浏览 • 1回复 待解决
HarmonyOS 网络请求的JSON数据怎么动态转自定义模型class对象
667浏览 • 1回复 待解决
HarmonyOS如何在自定义组件的自定义函数中获取当前的 NavPathStack
623浏览 • 1回复 待解决
HarmonyOS app版本升级需要自定义弹框
34浏览 • 1回复 待解决
HarmonyOS 地图组件marker需要如何自定义样式
115浏览 • 1回复 待解决
HarmonyOS Https请求如何通自定义证书去请求访问
49浏览 • 1回复 待解决
HarmonyOS ArkTS容器中需要加载RN自定义视图,需要怎么添加到视图上?
21浏览 • 1回复 待解决
HarmonyOS 在class文件中,没有上下文的情况下弹出一个自定义Dialog
274浏览 • 1回复 待解决
自定义弹窗自定义转场动画
1170浏览 • 1回复 待解决
NAPI中定义并注册Class
745浏览 • 1回复 待解决
HarmonyOS 自定义View中展示PDF,并调用自定义View中的一些接口方法
250浏览 • 1回复 待解决
HarmonyOS Picker中的文案如何自定义
36浏览 • 1回复 待解决
HarmonyOS CustomDialogController 自定义弹窗无法在 class 和 静态方法中正常弹出
87浏览 • 1回复 待解决
HarmonyOS 如何避免数据解析模型class在多个自定义组件内的代码冗余?
252浏览 • 1回复 待解决
HarmonyOS 自定义工具类中怎么弹出CustomDialogController自定义弹框?
434浏览 • 1回复 待解决
#鸿蒙通关秘籍#我想问下,应用文件的访问权限,如何自定义?
136浏览 • 1回复 待解决
鸿蒙中如何自定义字体文件
19552浏览 • 1回复 待解决
注册的自定义字体在 webview 中无效
2366浏览 • 1回复 待解决
如何理解自定义弹窗中的gridCount参数
2314浏览 • 1回复 待解决
将自定义类webviewBridge中的invoke方法改成箭头函数即可,示例代码: