【问题标题】:Default device back button not working properly with tabs : IONIC默认设备后退按钮无法与选项卡一起正常工作:IONIC
【发布时间】:2020-08-16 11:15:23
【问题描述】:

我有以下页面结构 登录 --> Tabs(Home) --> 产品列表 --> 购物车

当我登录登录页面时,我会显示默认标签页,其中有 4 个标签(主页、搜索、购物车、更多)。当我点击主页中的商家项目时,我将导航到商家详细信息页面,在那里我将显示他提供的菜单项列表。一旦我从菜单页面将一些项目添加到购物车,我会将它们添加到购物车。我正在显示一个前往购物车的按钮。当他点击按钮时,用户将进入购物车页面,在那里他将看到所有已添加到购物车的商品。

当用户点击设备返回按钮时,他将进入登录页面,而不是产品列表页面。

我正在使用角度路由器进行导航。在浏览器中它工作正常,但在真实设备中却不行。 请帮我解决问题。

【问题讨论】:

    标签: angular ionic-framework ionic4 angular-router


    【解决方案1】:

    您可以尝试捕获后退按钮事件并随时重定向用户...

    public subscription: Subscription;
    
    constructor(
      private platform: Platform
    ) {
      this.subscription = this.platform.backButton.subscribeWithPriority(0, () => { /* Your function */ });
    }
    
    ngOnDestroy() {
      this.subscription.unsubscribe()
    }
    

    零值 (0) 是事件的优先级,当您输入零时,Ionic 会优先执行您的功能(页面转换、关闭模式等)

    创建属性订阅以在您要离开页面时将其销毁并避免内存泄漏是一种很好的做法。

    【讨论】:

    • 如何解决后退按钮问题?它必须无缝工作,无需额外的手动代码
    • 您可以捕获当前页面中的后退按钮事件并将用户重定向到菜单列表页面......或者如果您可以共享您的路由文件,可以尝试更好的解决方案。
    • 那应该是自定义导航吧?有没有办法避免这种情况并使用默认路由本身,就像它在浏览器中的工作方式一样。
    • 是的,有可能...请您在 stackblitz 或任何其他平台上创建和示例您的代码...看看您的代码,我可以帮助您...跨度>
    猜你喜欢
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多