HarmonyOS 鸿蒙Next Navigation回退问题
HarmonyOS 鸿蒙Next Navigation回退问题
Navigation 配合 NavDestination,使用stack模式。
我使用的场景:从splash到login页面,Navigtion设置为splash,login设置为navDestination。所以,当前的stack有一个login,还有默认底层的navigation的splash。
现在的问题是:当我在login页面点击返回的时候,我的意图是退出app。但由于还有一个navigation的存在,导致我退到了splash,但这个stack是空的。
现在的解决方案是:我不得不拦截onback事件,然后判断当前stack情况,如果当前还有最后一个,就退出app。
问题:
这里为什么不把navigation起始也算进stack里面,这样我就可以一开始通过replace的方法,将其替换为login页面。
补充:我这里讨论的与splash无关,因为无论如何,你都需要默认设置一个navigation作为起始点,即使它里面什么也没有。
关于HarmonyOS 鸿蒙Next Navigation回退问题的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
建议直接 terminateSelf,查一下这个相关api
(vx:thelou1s)
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
官方示例:https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-application-navigation-design-V5
或者这个https://developer.huawei.com/consumer/cn/samples/ 中 搜索导航,也有官方的导航模块构建。
那这岂不是又用了两种路由方式。。。官方推荐Navigation,为什么不把它完善好
更倾向于用router,奈何官方支持Navigation,且router存在缺陷,无奈转向Navigation。 结果刚起头就遇到这个问题。。
不得不说hideNavBar命名有点误导人,只要设置一个空页面作为根容器(Navigation),并将hideNavBar设置为true就可以了。
[@Entry](/user/Entry)
[@Component](/user/Component)
struct RootPage {
pageStack: NavPathStack = new NavPathStack();
aboutToAppear(): void {
const token = MMKV.defaultMMKV().decodeString(Constants.TOKEN)
Log.info(“token:”+token + “—”)
if(token != null){
this.pageStack.replacePath({name:“Index”})
}else{
this.pageStack.replacePath({name:“AccountLoginPage”})
}
}
build() {
Navigation(this.pageStack){
}
.hideNavBar(<span class="hljs-literal"><span class="hljs-literal">true</span></span>)
.mode(NavigationMode.Stack)
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
将该页面在EntryAbility中设置为应用入口。
通过代码可以看出此时打开app会直接进入Index或AccountLoginPage,此时返回会直接退出app,不会进入RootPage
你这个方法可以的,我也是找了好久解决方案,不想使用ruter跳转。
现在遇到一个新的问题是,按钮点击使用this.pathStack.pop()返回时,还是会回到RootPage,而不是退出APP
-_-|| 好像确实会,不过我首页和登录页没这种按钮,所以只看了返回手势的效果。能说说你这个按钮的场景么,看看有没有替代方案。