Кордова Windows Phone кнопка возврата не работает

У меня есть универсальное приложение с Cordova и PhoneJS, и я создаю его с помощью Phonegap для iOS, Android и Windows Phone. Стиль Windows Phone удаляет кнопку "Назад" в представлениях для перехода назад. Когда я нажимаю кнопку возврата оборудования, приложение закрывается.

Вот почему я хочу переопределить функциональность кнопки "назад". Я нашел много документации, в которой говорится, что вам нужно зарегистрироваться в событии " backbutton " на " deviceready " после загрузки Cordova.

События ' on load ' и ' deviceready ' вызываются успешно. Проблема в том, что событие кнопки "Назад" не вызывается, и приложение все еще закрывается.

Версии:

npm list -g cordova
...\AppData\Roaming\npm
└─┬ phonegap@5.3.7
  └── cordova@5.4.0

Прибор:

  • Microsoft Lumia 640 LTE
  • Windows Phone 8.1 Обновление 2

Код:

// Is invoked
function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

// Is invoked
function onDeviceReady() {
    document.addEventListener("backbutton", onBackButton, false);
}

// Is not invoked
function onBackButton(){
  debugger;
}
<body onload="onLoad()">
</body>

1 ответ

Я узнал, что включенный PhoneJS использует WinJS. С этим я мог установить действие " onbackclick ".

function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

function onDeviceReady() {
    // Check if WinJS api is available
    if(WinJS){
      WinJS.Application.onbackclick = function (e) {
        MyApp.app.navigationManager.back();

        // Return true otherwise it will close app.
        return true;
      }
    }
}
<body onload="onLoad()">
</body>

Другие вопросы по тегам