Я занимаюсь разработкой приложения для Angular 7 и Cordova 8. Я хочу переопределить событие кнопки возврата Cordova, чтобы предотвратить закрытие приложения, добавив прослушиватель событий, как описано в документах cordova
Мой код выглядит так:
let onDeviceReady = () => {
enter code hereconsole.log("Bootstraping Module...")
document.addEventListener("backbutton", (e) => {e.preventDefault(); e.stopPropagation(); console.log("backbutton"); return false;}, false);
platformBrowserDynamic().bootstrapModule(AppModule);
};
document.addEventListener('deviceready', onDeviceReady, false);
В соответствии с документацией это должно препятствовать закрытию приложения. Я знаю, что вызовы preventDefault
, stopPropagation
и return false
не нужны, но я нашел возможные решения моей проблемы, которые не сработали.
Когда я нажимаю кнопку "Назад", я вижу отпечаток backbutton
, однако приложение все еще закрывается.
Проверено на Android.
Обновление: после отладки проблемы с помощью logcat я мог видеть сообщение WARNING: Back Button Default Behavior will be overridden. The backbutton event will be fired!
, которое регистрируется в классе плагина CoreAndroid, когда кнопка возврата переопределяется в собственном приложении Android. Тем не менее, когда я нажимаю кнопку, приложение выходит
Обновление: проблема была связана с OnsenUI, см. Мой ответ ниже