HarmonyOS 自定义组件内的onBackPress不响应?

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)
    })
  }
}
阅读 477
1 个回答