HarmonyOS鸿蒙Next中navigation默认显示页面怎么处理?

常见的企业应用,如果没有登录,显示登录页,登录后显示主页,如果是登录的话,直接显示主页,

如果从登录页登录完成后跳转到主页,这时候主页可以返回到登录页,如果在主页,点击退出登录,又该怎么处理?

现在navigation主键自带一个内容,而且无法通过路由栈清理

感觉还不如router,但是又说不推荐,新的组件功能又不满足

5 回复

在aboutToAppear里判断不行吗,或者登录和主页共用一个navigation,

更多关于HarmonyOS鸿蒙Next中navigation默认显示页面怎么处理?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我又试了HMRouter,还有bug,不能自动import

ide:Build Version: 5.0.11.100, built on March 28, 2025

这个再按一次返回退出功能,要返回4次才可以

@HMLifecycle({
  lifecycleName: 'ExitAppLifecycle'
})

export class ExitAppLifecycle implements IHMLifecycle {

  lastTime: number = 0;

  onShown(ctx: HMLifecycleContext): void {
    console.log('show HMLifecycleContext')
    this.lastTime = 0;
  }

  onBackPressed(ctx: HMLifecycleContext): boolean {

    let time = new Date().getTime();

    if (time - this.lastTime > 1000) {
      this.lastTime = time;
      ctx.uiContext.getPromptAction().showToast({
        message: '再次返回退出应用',
        duration: 1000,
      });
      console.log("HMLifecycleContext onBackPressed true")
      return true;
    } else {
      console.log("HMLifecycleContext onBackPressed false")
      return false;
    }
  }
}

我觉得也是,还不如router呢,

你也遇到这样的问题了吗?

在HarmonyOS鸿蒙Next中,默认显示页面可以通过在navigation组件的index属性中设置初始页面的索引值来实现。例如,若pages数组中有多个页面,设置index为0则默认显示第一个页面。确保pages数组中的页面顺序与index值对应,以实现正确的默认页面显示。

回到顶部