Android Ionic 4中处理后退按钮的问题
当我在android上构建并运行我的应用程序时,我意识到硬件后退按钮不起作用。 我有一个主页,它有两个子页面,一个主页和一个收藏夹页面,其中主页是默认页面。 如果我在“收藏夹”页面,单击“上一步”按钮,它会将我带到主页,但在主页上,如果单击“上一步”按钮,它会显示一个白色屏幕,并在几秒钟后重新启动应用程序。 我只有点击三次才能关闭应用程序。 我用的是离子4,角8 以下是我的应用程序路线的外观:Android Ionic 4中处理后退按钮的问题,android,ios,angular,ionic-framework,ionic4,Android,Ios,Angular,Ionic Framework,Ionic4,当我在android上构建并运行我的应用程序时,我意识到硬件后退按钮不起作用。 我有一个主页,它有两个子页面,一个主页和一个收藏夹页面,其中主页是默认页面。 如果我在“收藏夹”页面,单击“上一步”按钮,它会将我带到主页,但在主页上,如果单击“上一步”按钮,它会显示一个白色屏幕,并在几秒钟后重新启动应用程序。 我只有点击三次才能关闭应用程序。 我用的是离子4,角8 以下是我的应用程序路线的外观: { path: '', loadChildren: './pages/main/main.modu
{ path: '', loadChildren: './pages/main/main.module#MainPageModule' },
{ path: 'search', loadChildren:
'./pages/search/search.module#SearchPageModule' },
{ path: 'catalog-view', loadChildren: './pages/cat-view/cat-
view.module#CatViewPageModule' },
下面是我的主要模块的外观:
const routes: Routes = [
{
path: 'main',
component: MainPage,
children: [
{ path: 'home', loadChildren: '../home/home.module#HomePageModule' },
{ path: 'favorites', loadChildren:
'../favorites/favorites.module#FavoritesPageModule' },
]
},
{
path: '',
redirectTo: '/main/home'
}
];
我曾尝试在主页、Main甚至AppComponent中添加此功能,但没有任何效果:
ionViewDidEnter(){
this.subscription = this.platform.backButton.subscribe(()=>{
navigator['app'].exitApp();
});
}
ionViewWillLeave(){
this.subscription.unsubscribe();
}
我的主页中有以下代码,het在主页上向后退按钮注册了不同的功能。然后在它离开后再次注销
private isToastShown: boolean = false;
ionViewDidEnter(){
/* When on home page the back button should confirm before exiting */
this.platform.backButton.subscribeWithPriority(0, () => {
if (!this.isToastShown) {
this.presentConfirm();
} else {
navigator['app'].exitApp();
}
}, 0);
}
ionViewWillLeave() {
/* Reset back button to pop pages when pressed */
this.aPlatform.registerBackButtonAction(() => {
if (this.aNavController.canGoBack()) {
this.aNavController.pop();
}
});
}
private presentConfirm(): void {
this.isToastShown = true;
let lToast = this.aToastController.create({
message: "Press back again to exit"
});
lToast.present().then(() => {
setTimeout(() => {
lToast.dismiss();
this.isToastShown = false;
}, 2000);
});
}
希望这有帮助我让它工作了,这个问题很傻。 我必须将我的软件包更新到最新版本,尤其是@ionic native/core。 在我的家里,我只是简单地这样做:
ngOnInit(){
this.platform.backButton.subscribe(() => {
this.platform.backButton.unsubscribe();
navigator['app'].exitApp();
})
)
希望有帮助 嗨,谢谢你的回答。但我使用的是ionic 4,registerBackButton和exitApp()在版本中不存在。使用ionic 4的Edit answer函数不确定如何返回,因为您不再推送页面,而是导航到页面,因此,您可能需要在每页的IonViewDiEnter4上设置“后退”按钮的位置。当单击“后退”按钮时,IonViewDiEnter4会自动导航回主页。然而,问题出在主页上。当我在主页上单击后退时,它会显示一个白色屏幕,然后应用程序会重新启动。