1、自定义了一个webview组件里面对webview进行了封装
2、外部包裹了一个非entry的自定义页面ZWebIndexPage
3、现在需要拦截手势返回, 对webview加载的页面进行回退或者关闭当前页面onBackPress回调不了,有啥解决方案?
代码示例:
@Preview
@Component
export struct ZWebIndexPage {
back: () => void = () => {
this.pathStack.pop()
}
private pathStack: NavPathStack = new NavPathStack()
private buildParams: ZWebBuildParams = new ZWebBuildParams()
onBackPress(): boolean | void {
}
build() {
NavDestination() {
Row() {
// 自定义webview组件, 想在ZWebView内部进行拦截手势进行处理
ZWebView({params: this.buildParams, back: this.back})
.width('100%')
.height('100%')
}
}
.hideTitleBar(true)
.onReady((context: NavDestinationContext) => {
// 获取页面栈对象NavPathStack和页面入参
this.pathStack = context.pathStack
this.buildParams.routerParams = context.pathInfo.param as Record<string, ZWebBuildParams>
ZWindow.onReady(this.buildParams.getWindowObj(), context)
})
}
}
请参考示例2中pageone.ets:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-navigation-V5\#示例2
可在 .onBackPressed函数中控制返回事件