【问题标题】:Disable hardware back button禁用硬件后退按钮
【发布时间】:2015-11-12 17:48:56
【问题描述】:

我正在使用 ionic 开发混合移动应用。我的应用程序包含加载应用程序 (load.js) 和核心应用程序 (core.js)。当应用程序首次启动时,它将加载load.js 并显示登录屏幕。一旦用户登录,它将连接到服务器并加载core.js。这2个JS是独立运行的,不能直接通信。 load.js 仅在启动时使用,之后在后面“休眠”。

这种方法效果很好,除了硬件返回按钮。如果load.js 加载了离子,那么当用户点击硬件后退按钮时,应用程序将立即退出。我尝试了$ionicPlatform.offHardwareBackButton(),但没有成功。

那么,有没有办法在不移除离子的情况下移除load.js 上的硬件后退按钮?

【问题讨论】:

  • 如果它解决了您的问题,您能否将答案标记为“已接受”? :)
  • @user1995781:你解决了这个问题吗?寻找Carl的答案的类似实现,但我无法获得所需的最终结果:(

标签: angularjs cordova ionic-framework


【解决方案1】:

这是我用来禁用后退按钮的服务: https://gist.github.com/mircobabini/689955216a036544d594

.service( 'HardwareBackButtonManager', function($ionicPlatform){
  this.deregister = undefined;

  this.disable = function(){
    this.deregister = $ionicPlatform.registerBackButtonAction(function(e){
    e.preventDefault();
    return false;
    }, 101);
  }

  this.enable = function(){
    if( this.deregister !== undefined ){
      this.deregister();
      this.deregister = undefined;
    }
  }
  return this;
})

// usage
.controller( 'YourController', function( 'HardwareBackButtonManager' ){
    HardwareBackButtonManager.disable();

    // re-enable it when you want,
    HardwareBackButtonManager.enable();
})

【讨论】:

    猜你喜欢
    • 2021-11-21
    • 2019-02-02
    • 1970-01-01
    • 2020-01-28
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 2021-04-29
    相关资源
    最近更新 更多