首页 文章

防止Android后退按钮功能

提问于
浏览
0

我试图阻止Android后退按钮返回我的应用程序的某个页面 . 网上随处可见建议下面的代码,但它不起作用 . 我在'backbutton'事件监听器中放了一个断点,它就可以了 . 然而,应用程序仍然返回页面 .

我在Cordova(4.0.0)上使用Ionic . 我正在使用Android(4.4.2)模拟器进行测试 .

有什么想法吗?

这是我正在使用的代码 .

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    document.addEventListener("backbutton", function (e) {
        e.preventDefault();
    }, false );
}

2 回答

  • 0

    我在Iconic forum找到了与此相关的帖子 .

    示例脚本:

    $ionicPlatform.registerBackButtonAction(function () {
      //handle back action
    }, 100);
    

    P.S:你也可以按照this answer中的说明禁用backButton功能 .

  • 0

    把它放在你的父亲活动中

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
    
            if (!sharedPreferences.isBackButtonEnabled()) { // Save a flag in sharedPreferences to know when you have button enable or not. 
                return true;
            }
    
        }
    
        return super.onKeyDown(keyCode, event);
    }
    

    然后,在片段中,您要阻止后退按钮:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        sharedPreferences.setBackButtonEnabled(false);
     }
    

    如果您希望在生活该片段时启用它:

    @Override
    protected void onDestroy() {
        sharedPreferences.setBackButtonEnabled(true);
     }
    

相关问题