Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ionic framework 爱奥尼亚4,角度导航和安卓后退按钮_Ionic Framework_Ionic2_Angular Ui Router_Ionic3_Ionic4 - Fatal编程技术网

Ionic framework 爱奥尼亚4,角度导航和安卓后退按钮

Ionic framework 爱奥尼亚4,角度导航和安卓后退按钮,ionic-framework,ionic2,angular-ui-router,ionic3,ionic4,Ionic Framework,Ionic2,Angular Ui Router,Ionic3,Ionic4,如何实现Ionic 4/角度导航,使用户无法通过应用程序上的整个体验(屏幕)向后导航 我已经将我的Ionic 2应用程序移植到了Ionic 4,感觉自己失去了一些关键的导航功能 具体来说:当用户在应用程序中向前移动,并在我的应用程序的不同区域来回移动时,他们现在可以使用Android后退按钮向后浏览他们以前的屏幕的完整历史记录。而以前,一旦用户点击根页面,Ionic将阻止它们向后移动 例如,用户将从主欢迎页面导航到主产品页面,然后导航到产品详细信息页面,然后导航到主订单页面,然后导航到订单详细信

如何实现Ionic 4/角度导航,使用户无法通过应用程序上的整个体验(屏幕)向后导航

我已经将我的Ionic 2应用程序移植到了Ionic 4,感觉自己失去了一些关键的导航功能

具体来说:当用户在应用程序中向前移动,并在我的应用程序的不同区域来回移动时,他们现在可以使用Android后退按钮向后浏览他们以前的屏幕的完整历史记录。而以前,一旦用户点击根页面,Ionic将阻止它们向后移动

例如,用户将从主欢迎页面导航到主产品页面,然后导航到产品详细信息页面,然后导航到主订单页面,然后导航到订单详细信息页面。然后,如果他们开始使用Android后退按钮,他们就可以浏览整个屏幕历史,一直回到欢迎页面

以前,它们将被强制停止在最后一个根/主页面(例如订单页面)

我不认为我必须使用任何特定于应用程序的逻辑来在主页上动态禁用Android。我认为以前版本的爱奥尼亚框架足够聪明,不再倒退太远

如何实现Ionic 4/角度导航,使用户无法通过应用程序上的整个体验(屏幕)向后导航

我知道爱奥尼亚4号使用angular的路由


我没有要求禁用Android后退按钮。

在ionic v4中,这似乎可以正常工作:

在app.component.ts的initializeApp()函数中添加以下内容:

初始化EAPP(){
this.platform.ready()。然后(()=>{
this.platform.backButton.subscribethPriority(9999,()=>{
document.addEventListener('backbutton',函数(事件){
event.preventDefault();
event.stopPropagation();
log('hello');
},假);
});
//这里有关于splashScreen、statusBar等的说明。
});
}

这是一个简单得多的解决方案,一直在为我工作。基本上,当您要导航到一个根页面时,您只需告诉ionic/angular,然后它就会停止返回按钮,让您通过它

从'@angular/Router'导入{Router};
从'@ionic/angular'导入{NavController};
...
构造函数(专用navCtrl:NavController,专用路由器:路由器){}
...
this.navCtrl.setDirection('root');
this.router.navigateByUrl(“/new root page”);

我遇到了同样的问题。我的app.component.ts文件中有以下函数,但它不起作用。也许我的思路是正确的,有人可以告诉我如何调整它来工作。androidBackButton(){this.platform.backButton.subscribe(()=>{let url=this.router.url;switch(url){case'/map':this.openPage('/tabs/home');break;case'/events':this.openPage('/tabs/home'));break;大小写“/staff”:this.openPage(“/tabs/home”);break;}}