ionic 3-registerBackButtonAction-无法获取活动的推送页面

问题描述

我的应用程序导航如下:

  • 登录页面(设置为Root)
  • TabsPage(设置为Root,一旦登录成功)
    • ListPage(ion-tab根)
      • FilterPage(以模式形式打开)
      • DetailsPage(页面已推送)
    • SearchPage(ion-tab根)
    • SettingsPage(ion-tab根)
      • 历史记录(页面已推送)
        • HistoryDe​​tailsPage(页面已推送)

问题有点same as this question。但这对我没有帮助。

问题:

每当我从按下的页面或ion-tab根页面按下硬件后退按钮时,在app.component.ts的后退按钮事件中,仅会看到nav.getViews()的[“ TabsPage”]。在该全局后退按钮事件中如何获取推入页面名称

参考代码

app.component.ts:

from django.urls import path

from . import views

urlpatterns = [
    path('',views.TodoList.as_view(),name='todolist'),path('',views.AddTodo.as_view(),name='addtodo')
]

解决方法

您将不会获得页面名称。

registerBackButtonAction不返回页面名称,它返回实例。因此,如果要查找页面,则必须在app.component.ts中实例化该页面的实例,然后将其与返回的值进行比较。

我还建议您不要使用依赖Page名称的代码,因为这些名称将在生产版本中丢失。当在生产版本中将代码缩小时,名称也将缩小,例如,名称HomePage将变为a。这将导致您的代码在生产中中断。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...