首页 文章

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

提问于
浏览
1

我尝试添加功能来覆盖当前的后退按钮行为,这与在浏览器中按下后退按钮(左箭头)完全相同 . 这往往是前进而不是回头的观点 . 据我所知,这就是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

    您是否有可能使用Ionic View来运行应用程序?如果是这样,那么在使用Ionic View时会遇到这种情况 . 我无法让后退按钮行为在Ionic View中按预期工作,等等 .

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

  • 0

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

    doc开始,goBack是浏览历史的方法

  • 0

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

    科尔多瓦未定义

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

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

    我想你是通过调用将后视图添加为堆栈的新视图

    backView.go();
    

    你应该,而是打电话

    $ionicHistory.goBack();
    

相关问题