Как отключить кнопку Android Back на одной странице и перейти к кнопке выхода на каждой другой странице?

Я разрабатываю приложение для Android с использованием Phonegap, который взаимодействует с моим сайтом Drupal. Я переназначил Android "Назад» кнопка, чтобы предложить пользователю выйти из сервера Drupal, однако, я просто хочу отключить его на странице входа в систему (по понятным причинам). Я могу заставить его работать, но только до тех пор, пока пользователь не выйдет из системы, после чего однажды на странице входа в систему кнопка останется назначенной кнопкой выхода из системы. Вот'S код, который я имею до сих пор:

   
         
        /* Wait until device is ready to re-assign Back button */
        document.addEventListener("deviceready", onDeviceReady, false);
        function onDeviceReady() {
            document.addEventListener("backbutton", onBackKeyPress, false);
        }
        function onBackKeyPress() {
            /* If the current page is the login page, disable the button completely (aka do nothing) */
            if ($.mobile.activePage.attr('id') == 'login_page') {
            }

            /* Else, execute log off code */
            else {
                if (confirm("Are you sure you want to logout?")) {
                    /* Here is where my AJAX code for logging off goes */
                }
                else {
                    return false;
                }
            }
        }
        

Проблема в том, что кнопка Назад нет переназначается. Я не могу найти способ перезапустить приведенный выше код, когда пользователь выходит из системы и возвращается на страницу входа.

Если кто-то готов предоставить решение для этого, я буду очень благодарен!

Ответы на вопрос(4)

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

Попробуй это:

document.addEventListener("backbutton", function(e){
    if($.mobile.activePage.is('#login_page')){
        e.preventDefault();
    }
    else {
        if (confirm("Are you sure you want to logout?")) {
            /* Here is where my AJAX code for logging off goes */
        }
        else {
            return false;
        }
    }
}, false);
 Juan Carlos Alpizar Chinchilla02 сент. 2016 г., 20:54
выполнение этого в моем проекте, кажется, выполняется только один раз, поэтому он входит в предложение if, предотвращает выполнение кнопки «Назад» по умолчанию и уходит, тогда кнопка «Назад» не работает ни на одной странице приложения

готовом ... вот полный рабочий пример »index.html»



  
    <title>Back Button</title>
    <link rel="stylesheet" type="tex`enter code here`t/css" href="style.css">
    <script>
        function getTitle() {
            document.getElementById("ct").innerHTML = "DEMO: " + document.title;
        }
    </script>
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">
    // Wait for device API libraries to load
    //
    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
        getTitle();
    }
    // device APIs are available
    //
    function onDeviceReady() {
        // Register the event listener
        document.addEventListener("backbutton", onBackKeyDown, false);
    }
    // Handle the back button
    //
    function onBackKeyDown() {
        alert('Backbutton key pressed');
        console.log('Backbutton key pressed');
    }
    </script>
  
  
  <ul id="nav">
        <li><a href="index.html">← Back</a></li>
        <li><a href="#" id="ct" onclick="location.reload();"></a></li>
    </ul>
  

Я использовал этот код, и кнопка «Назад» окончательно переопределена ....

Ссылка -> https://github.com/amirudin/PhoneGapPluginDemo/blob/master/www/evt-backbutton.html

deviceready это важно. Если не используется, иногда вы можете получить блокировку кнопки «Назад», иногда нет. Часто в отладке это работает, в производстве нет.

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

РЕДАКТИРОВАТЬ 2013-11-03 Распространенной ошибкой является то, что разработка выполняется на десктопе, а скрипт Cordova исключен. Затем забывают включить скрипт Cordova для мобильной версии.

 JamesRLamar08 окт. 2013 г., 04:29
У меня работает PhoneGap 2.7
 s3v3n26 мар. 2015 г., 01:25
Спасибо за редактирование. Это был и мой случай

Ваш ответ на вопрос