自定义 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
待解决
相关问题
如何访问自定义文件?
648浏览 • 1回复 待解决
自定义日历组件,开发中,自定义生成需要的日历格式方法有哪些?
1188浏览 • 1回复 待解决
Native与TS互传自定义obj class
905浏览 • 1回复 待解决
自定义弹窗的控制器(CustomDialogController)如何封装在普通class中
2153浏览 • 1回复 待解决
json字符串与自定义class结构的转换
2025浏览 • 1回复 待解决
HarmonyOS如何在自定义组件的自定义函数中获取当前的 NavPathStack
488浏览 • 1回复 待解决
自定义弹窗自定义转场动画
1040浏览 • 1回复 待解决
HarmonyOS 网络请求的JSON数据怎么动态转自定义模型class对象
440浏览 • 1回复 待解决
HarmonyOS 自定义工具类中怎么弹出CustomDialogController自定义弹框?
250浏览 • 1回复 待解决
NAPI中定义并注册Class
650浏览 • 1回复 待解决
ArkUI中如何使用自定义字体
569浏览 • 2回复 待解决
自定义组件中如何添加图片?
2537浏览 • 1回复 待解决
如何在BuildProfile中自定义参数?
175浏览 • 1回复 待解决
HarmonyOS 在class文件中,没有上下文的情况下弹出一个自定义Dialog
157浏览 • 1回复 待解决
鸿蒙中如何自定义字体文件
19220浏览 • 1回复 待解决
如何理解自定义弹窗中的gridCount参数
2141浏览 • 1回复 待解决
注册的自定义字体在 webview 中无效
2226浏览 • 1回复 待解决
HarmonyOS 自定义弹窗怎么设置自定义动画?
231浏览 • 1回复 待解决
HarmonyOS 如何避免数据解析模型class在多个自定义组件内的代码冗余?
151浏览 • 1回复 待解决
HarmonyOS 自定义组件如何写自定义事件?
417浏览 • 1回复 待解决
如何在自定义弹窗中再次弹窗
2159浏览 • 1回复 待解决
自定义弹窗中的变量如何传递给页面
2517浏览 • 1回复 待解决
自定义弹窗能否在ts文件中定义和使用
1877浏览 • 1回复 待解决
HarmonyOS 自定义dialog中的某些属性如何调用?
58浏览 • 0回复 待解决
将自定义类webviewBridge中的invoke方法改成箭头函数即可,示例代码: