无法使用 ionic2 在设备上获取上一页名称

Posted

技术标签:

【中文标题】无法使用 ionic2 在设备上获取上一页名称【英文标题】:cannot get previous page name on device using ionic2 【发布时间】:2017-06-15 05:13:04 【问题描述】:

我正在使用离子 2。

我更新了我的 ionic 版本。

离子版本 3.4.0

如果用户未通过身份验证,我的根页面是登录页面。用户登录后转到仪表板 Page.user 当点击硬件返回按钮时转到登录页面。

如果用户通过身份验证单击硬件后退按钮不进入登录页面,我需要。显示消息“您要退出吗?”

因为我需要获取上一页的名称。

我使用了这个代码

this.navCtrl.last();

在浏览器上可以正常工作,但在设备上不行。

我运行我的应用程序。

我安慰了值

t _isHidden: false, willEnter: e, didEnter: e, willLeave: e, didLeave: e…

它返回的页面名称是't'。

【问题讨论】:

【参考方案1】:

然后,您可以在路由到新页面时传递当前页面的名称。然后您可以在新页面中使用该名称。

示例(假设我们从页面 A 路由到页面 B)

在页面 A

this.navCtrl.push(B,previousPage:'A');

在页面 B

class B
  constructor(private navParams: NavParams) 
     let previousPage= navParams.get('previousPage');
  

====更新=======

我不明白您为什么要使用以前的页面名称来实现此目的。您的要求可以达到以下任何方式。

    在您的应用组件中将根页面设置为loginPage

    public rootPage: any = LoginPage;

    那么,如果用户登录成功。通过调用路由到仪表板页面

    navCtrl.setRoot(HomePage); // here user will route to the home page and set it as root

    当用户点击退出时,您可以将根页面重新更改为登录页面

    navCtrl.setRoot(LoginPage);

如果用户通过身份验证,则根页面将为HomePage,如果用户单击返回按钮,用户将离开应用程序。

希望这会帮助你 :) 享受 Ionic ;)

【讨论】:

感谢您的回复。我该怎么做这个 app.component.ts 你的根页面是什么。 ?请描述您的要求(最好能提供app.component.tsrootPage.ts 相关内容) 我也使用 this.nav1.setRoot(pagename)。但仍然没有解决这个问题。我尝试过这种方式 console.log(this.nav.getActive()); console.log(this.navCtrl.getActive().component.name);这只是在设备上返回字母 t,但在浏览器中确实有效。 我希望处理硬件后退按钮,因为我需要获取当前视图的名称。

以上是关于无法使用 ionic2 在设备上获取上一页名称的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JavaScript 获取上一页 URL? [复制]

Ionic2 - 给定路径,无法在 UI 上显示本地图像

无法在真实设备上使用 Appium 在 iOS hyprid 应用程序自动化中识别 WEBVIEW 中的元素

wordpress 如何在子页面中导航上一页和下一页

无法使用上一页中的相同模型

Scrapy下一页按钮和上一页按钮在同一类,无法到达下一页