我在我的应用程序中使用了Ionic,但是当我尝试按下物理后退按钮时,它应该退出应用程序,而不是返回到上一个状态。
我听了$ionicPlatform.registerBackButtonAction
事件,但没有执行。
app.js
app.run(function ($rootScope, $cordovaToast, $ionicPlatform, $state, $cordovaKeyboard) {
var deregister;
$ionicPlatform.ready(function () {
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if (window.StatusBar) {
StatusBar.styleDefault();
}
$ionicPlatform.registerBackButtonAction(function (event) {
event.preventDefault();
console.info('天啦噜,你终于执行了')
if ($state.current.name == "tab.discover") {
console.info('哈哈,要退出了')
navigator.app.exitApp();
}
else {
console.info('哈哈,要返回了')
navigator.app.backHistory();
}
}, 101);
});
答案 0 :(得分:0)
由于它会返回某个页面,因此问题最有可能是$state.current.name
,console.log($state.current.name)
,看看它应该是什么,并使用三个===
而不是==
来做得更准确。如果不是这种情况,请尝试在registerBackButtonAction
中将101更改为100。