@Entry
@Component
export default struct WebView {
controller: web_webview.WebviewController = new web_webview.WebviewController()
@State url: string = ''
build() {
Column() {
Web({ src: this.url, controller: this.controller })
.javaScriptProxy({
object: this.jsHandler,
name: "testObjName",
methodList: ["test"],
controller: this.controller
})
}
.width('100%')
.height('100%')
}
}
上面的代码中通过javaScriptProxy方式注入后,该函数可以在前端页面触发运行,但当页面执行router.back()关闭再次打开页面就无法被触发了。是否有办法让它每次被打开都能触发?
可以写在onControllerAttached回调里,参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5\#oncontrollerattached10
通过registerJavaScriptProxy注册,文档地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5\#registerjavascriptproxydeprecated
参考示例: