Ionic $ ionicPlatform.registerBackButtonAction在Android设备上不起作用

时间:2016-12-17 16:02:49

标签: angularjs cordova ionic-framework

我在我的应用程序中使用了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);

});

1 个答案:

答案 0 :(得分:0)

由于它会返回某个页面,因此问题最有可能是$state.current.nameconsole.log($state.current.name),看看它应该是什么,并使用三个===而不是==来做得更准确。如果不是这种情况,请尝试在registerBackButtonAction中将101更改为100。