Android 9 и событие backbutton

События для кнопки назад для Андроида обрабатывается просто:

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

содержит ошибку.

Самый быстрый и простой способ исправить:

  1. Зайти на страницу https://github.com/apache/cordova-plugin-splashscreen и сделать “Fork”.
  2. Перейти в уже ваш репозиторий, например мой, https://github.com/shastox/cordova-plugin-splashscreen
  3. Найти и заменить файл src/android/SplashScreen.java вот таким содержимым https://raw.githubusercontent.com/apache/cordova-plugin-splashscreen/05d8f9a3f7b87b14e0f760f7148b7affbe216328/src/android/SplashScreen.java
  4. Удалить плагин: cordova remove cordova-plugin-splashscreen
  5. Поставить плагин из своего репозитория (например мой): cordova plugin add https://github.com/shastox/cordova-plugin-splashscreen.git

Теперь все работает отлично.

3 Likes

Спасибо! Не знал)) На английский переведёшь, будет полезно?

У меня туго c “русский > английский”

Special Thank My Friend toDay i spent atleast 5 to 7 hours tring to solve this problem ( we are in release date ) .
and also special thanks to google that invented Google Translator xd

Странная штука, на одном моем проекте точно была проблема именно на 9м Андроиде и решение, которое я описал в первом посте, помогло.

С другой стороны, созданное “пустое” с помощью свежего Framework7 CLI не имеет такой проблемы на том же телефоне.

Это сообщение будет полезно для тех, кто столкнется с этой проблемой.