防止Android后退按钮功能

时间:2014-11-25 23:26:19

标签: javascript android cordova ionic-framework

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

我在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 :(得分: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);
 }

答案 1 :(得分:0)

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

示例脚本:

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

P.S:您还可以按照this answer 中的说明禁用backButton功能。