阻止安卓后退按钮功能

Prevent Android back button functionality

本文关键字:按钮 功能      更新时间:2023-09-26

我正在尝试阻止Android后退按钮返回我的应用程序的某个页面。网上到处都建议下面的代码,但它不起作用。我在"后退按钮"事件侦听器中放置了一个断点,它就可以了。但是,该应用程序仍会返回页面。

我在Cordova(4.0.0)之上使用Ionic。我正在使用安卓(4.4.2)模拟器对其进行测试。

有什么想法吗?

这是我正在使用的代码。

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

我在标志性论坛中找到了一篇与此相关的帖子。

示例脚本:

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

PS:您也可以禁用此答案中提到的后退按钮功能。

把它放在你的父亲活动中

@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);
 }