События для кнопки назад для Андроида обрабатывается просто:
document.addEventListener('backbutton', function (e) {
});
Для этого есть заготовка в Framework7 CLI, которая позволяет не только обработать нажатие, но также обработать и долгое нажатие на кнопку.
Но событие не вызывается в 9й версии Android (10 - неизвестно). Причина - очень распространенный плагин cordova-plugin-splashscreen, который идет обычно “по умолчанию”.
Вот Pull Request, который исправляет проблему: https://github.com/apache/cordova-plugin-splashscreen/pull/225 но не смотря на то, что это серьезный баг и исправления были предложены 2 июля, на сегодняшний день он не принят в мастер, а значит последняя версия плагина, которая устанавливается командой:
cordova plugin add cordova-plugin-splashscreen
содержит ошибку.
Самый быстрый и простой способ исправить:
- Зайти на страницу https://github.com/apache/cordova-plugin-splashscreen и сделать “Fork”.
- Перейти в уже ваш репозиторий, например мой, https://github.com/shastox/cordova-plugin-splashscreen
- Найти и заменить файл src/android/SplashScreen.java вот таким содержимым https://raw.githubusercontent.com/apache/cordova-plugin-splashscreen/05d8f9a3f7b87b14e0f760f7148b7affbe216328/src/android/SplashScreen.java
- Удалить плагин: cordova remove cordova-plugin-splashscreen
- Поставить плагин из своего репозитория (например мой): cordova plugin add https://github.com/shastox/cordova-plugin-splashscreen.git
Теперь все работает отлично.