Android硬件后退按钮操作永远不会触发(离子)

时间:2015-07-07 14:01:40

标签: android angularjs cordova ionic-framework ionic

我尝试添加功能来覆盖当前的后退按钮行为,这与在浏览器中按下后退按钮(左箭头)完全相同。这往往是前进而不是回头的观点。我知道这就是WebView如果不覆盖它将如何处理后退按钮操作。

我很惊讶Android后退按钮与 ion-nav-view 标准后退按钮的工作方式相同,所以我找到了负责 ionic.bundle的代码的.js

  // Triggered when devices with a hardware back button (Android) is clicked by the user
  // This is a Cordova/Phonegap platform specifc method
  function onHardwareBackButton(e) {
    console.log('check'); //this never fires
    var backView = $ionicHistory.backView();
    if (backView) {
      // there is a back view, go to it
      backView.go();
    } else {
      // there is no back view, so close the app instead
      ionic.Platform.exitApp();
    }
    e.preventDefault();
    return false;
  }
  console.log('check2'); //this fires
  $ionicPlatform.registerBackButtonAction(
    onHardwareBackButton,
    IONIC_BACK_PRIORITY.view
  );

我在Galaxy S5上进行了测试。

任何提示如何使这项工作?

4 个答案:

答案 0 :(得分:0)

为什么不使用:$ionicHistory.goBack()而不是backView.go();

来自doc goBack是浏览历史记录的方法

答案 1 :(得分:0)

我认为您通过调用

将后视图添加为堆栈上的新视图
backView.go();

你应该,而不是打电话

$ionicHistory.goBack();

答案 2 :(得分:0)

您是否可以使用Ionic View来运行该应用?如果是这样,那就是我在使用Ionic View时遇到的许多不同于本机的问题之一。我无法让后退按钮行为在Ionic View中按预期工作,等等。

我已经转而使用Google Play Alpha/Beta Testing与其他人一起测试我的应用。这将使应用程序在每个测试人员的设备上以实际显示的方式运行。

答案 3 :(得分:0)

即使我没有像以下那样的错误:

cordova未定义

我在index.html中添加了以下内容并开始工作

<script src="cordova.js"></script>