致力于一个项目,并陷入一个问题:
硬件回按钮重新加载应用程序(我在这个应用程序中使用角路由器)。
我的退出应用程序代码:
ionViewDidEnter(){
this.subscription = this.platform.backButton.subscribe(()=>{
navigator['app'].exitApp();
});
}
ionViewWillLeave(){
this.subscription.unsubscribe();
}而同样的逻辑在其他应用程序中工作。但是在这个应用程序中,它重新加载应用程序,而不是退出它。
P.S:我也试过把它放进platform.ready(),但是没有运气。
发布于 2019-10-14 13:28:12
已解决:
正如@rtpHarry所提到的,SideMenu / Tabs的模板有历史,这使得应用程序在根页面上重新发布它。我能够通过清理历史来解决这个问题。
ionViewDidEnter(){
navigator['app'].clearHistory();
}在你的根页面上,只要清除你的历史记录,你的硬件按钮就会关闭应用程序,而不是重新加载它。
发布于 2019-08-23 21:01:20
利用离子4,开发了一种处理软、硬回键之间竞争的新方法subscribeWithPriority。尝试修改代码,如下所示:
this.platform.backButton.subscribeWithPriority(1, () => {
navigator['app'].exitApp();
});
subscribeWithPriority()在事件执行后停止其传播,如果我们使用高优先级订阅并执行首选导航而不是默认导航,那么它将按您的意愿工作。
更多参考文档以获取详细信息:
https://github.com/ionic-team/ionic/commit/6a5aec8b5d76280ced5e8bb8fd9ea6fe75fe6795
https://medium.com/@aleksandarmitrev/ionic-hardware-back-button-nightmare-9f4af35cbfb0
更新:
this.navCtrl.pop() / this._navCtrl.navigateBack('HomeScreen'),然后打电话给exitApp。注意: Tabs & SideMenu --因为它们有自己的路由模块--使用app导航确实会带来很多复杂性。
发布于 2019-08-25 07:35:43
你的应用程序里有副刊吗?我只是好奇,因为这似乎也是我遇到这个问题的时候。
如果您查看检查器,您将看到window.history的长度为1。
我没有在我的一些应用中看到它,但我有一个侧菜单设置的应用程序是这样的--在主页上,如果你按下屏幕,屏幕会变白,然后它会重新加载应用程序。
就像我说的,从检查员的角度来看,有一段历史值得回顾,它正在努力去做,不管这一历史步骤是什么,它只是把它推回主页,这让我怀疑是否是sidemenu建立了自己对导航系统的控制。
我可能说了一些用词不当的术语,但由于我自己还没有解决这个问题,我想我应该让你知道我发现了什么.希望它能帮助你向前迈进。
在我的场景中,我甚至没有试图在后面的代码上做出口--我只是注意到,如果我继续按回放,这个应用程序看起来会“重新启动”。
https://stackoverflow.com/questions/57628497
复制相似问题