Navigation 在栈底页面时,无法侧滑返回桌面

​Navigation 在栈底页面时, 其侧滑返回事件应该由承载Navigation的ArkUI Page的 onBackPress来接管。 从而返回桌面。

HarmonyOS
2024-01-30 23:27:15
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
washington_lee

在BasePage的onBackPress方法中判断stackSize是否为1,是:调用emitter发送消息给Navigation关闭路由。

.onBackPressed(() => { 
  console.log(`cwq PF- onBackPressed ${this.constructor.name}`) 
  let stackSize = this.mainStack.size(); 
  if (stackSize === 1) { 
    console.log('cwq stack size is ' + stackSize) 
    let eventData: emitter.EventData = { 
      data: { 
        "id": 1, 
      } 
    }; 
    let innerEvent: emitter.InnerEvent = { 
      eventId: 1, 
      priority: emitter.EventPriority.HIGH 
    }; 
    emitter.emit(innerEvent, eventData); 
  } 
  return false; 
})

在主Navigation注册事件监听,收到监听后返回页面栈。

let innerEvent: emitter.InnerEvent = { 
  eventId: 1 
}; 
 
// 收到eventId为1的事件后执行回调函数 
emitter.on(innerEvent, () => { 
  console.log('cwq on innerEvent call back') 
  // this.onBackPress(); 
  router.back() 
});
分享
微博
QQ
微信
回复
2024-02-01 11:47:04
相关问题
HarmonyOS dialog如何禁止返回关闭
23浏览 • 1回复 待解决
如何在navigation跳转页面返回传参
1797浏览 • 1回复 待解决
HarmonyOS 返回事件拦截与绑定
1296浏览 • 1回复 待解决
HarmonyOS webview返回上一页问题
811浏览 • 1回复 待解决
HarmonyOS 事件
55浏览 • 1回复 待解决
HarmonyOS 怎么禁止
160浏览 • 1回复 待解决
HarmonyOS 返回桌面
65浏览 • 1回复 待解决