gpt4 book ai didi

android - 硬件后退按钮关闭启用 Tab 的 Ionic 3 应用程序上的应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:54 27 4
gpt4 key购买 nike

当用户点击 my profile 页面(或选项卡)时,用户未登录然后显示 login page 如下所示。在 login页面,它有header back button并且工作正常(你可以看到下面的代码)。当用户点击Android上的硬件后退按钮时,我需要相同的功能设备。但是它关闭了应用程序。你能告诉我如何解决这个问题吗?如果您需要更多信息,请告诉我。

my-profile.ts

constructor(public navCtrl: NavController, public app: App, public userService: UserService
) {
if (!this.userService.userDetails) {
this.app.getRootNav().setRoot('Login', { profile: true });
return;
}
}

login.ts

constructor(public navCtrl: NavController, public navParams: NavParams) {
this.profile = this.navParams.data.profile;
}

back() {
if (this.profile) {//not logged in user
this.navCtrl.setRoot('TabsPage');
}
}

login.html

<ion-header>
<ion-navbar>
<ion-buttons left>
<button ion-button *ngIf="profile" (click)="back()" tappable><ion-icon name="arrow-back"></ion-icon></button>
</ion-buttons>
<ion-title>login</ion-title>
</ion-navbar>
</ion-header>

<ion-content padding>

</ion-content>

最佳答案

您可以使用平台的 registerBackButtonAction() 方法来处理用户按下 native 后退按钮的时间。

import { Platform } from 'ionic-native';
...
constructor(public platform: Platform){

platform.registerBackButtonAction(() => {
if (navCtrl.canGoBack()) { // CHECK IF THE USER IS IN THE ROOT PAGE.
navCtrl.pop(); // IF IT'S NOT THE ROOT, POP A PAGE.
} else {
platform.exitApp(); // IF IT'S THE ROOT, EXIT THE APP.
}
});

}

但这里的情况是您设置根而不是推送页面,所以这是 Ionic 的正常行为,当在根页面中并且没有任何可弹出的内容时,应用程序关闭。

在这种情况下,您可以在 login.ts 上执行类似的操作

platform.registerBackButtonAction(() => {
this.back();
});

因此每次用户进入登录页面并点击硬件后退按钮时,它只需调用您的 back() 方法即可将根设置为另一个页面。

希望这对您有所帮助。

关于android - 硬件后退按钮关闭启用 Tab 的 Ionic 3 应用程序上的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45101568/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com