Кордова: событие «Пауза и возобновление» не стреляет

Если вы хотите знать, когда пользователь покидает приложение, вы можете использовать простой прослушиватель событий, который реагирует на события паузы или возобновления с помощью Javascript:

document.addEventListener("resume", function(){
// Do something on resume
}, false);
document.addEventListener("pause", function(){
// Do something on pause
}, false);

Если код, который вы используете, похож на предыдущий пример, и он не работает (функции обратного вызова никогда не срабатывают), то вам нужно знать, что вы что-то делаете неправильно. Да, ошибка не в кордове, а в том, как ты работаешь, вы, вероятно, каким-то образом проходите критически важный шаг, который препятствует выполнению события.

В этой статье мы собираемся показать 3 шага, которые вы проходите, и, вероятно, заставляют ваше приложение не запускать события паузы и возобновления.

1. Добавьте прослушиватель после события готовности устройства

Убедитесь, что вы прикрепляете событие паузы и возобновления после или во время выполнения deviceready событие. Это событие имеет важное значение для любого приложения. Он сигнализирует о том, что API-интерфейсы устройства Cordova загружены и готовы к доступу. Cordova состоит из двух кодовых баз: родной и JavaScript. Пока загружается собственный код, отображается пользовательское изображение загрузки. Однако JavaScript загружается только после загрузки DOM. Это означает, что веб-приложение может потенциально вызвать функцию JavaScript Cordova до того, как станет доступен соответствующий нативный код.

// Add the deviceready event
document.addEventListener("deviceready", function(){
// attach events
document.addEventListener("resume", onResume, false);
document.addEventListener("pause", onPause, false);
}, false);
function onPause() {
alert('paused');
}
function onResume() {
alert('resumed');
}

Если вы запустили свое приложение, а функция все еще игнорируется, перейдите к шагу 2.

2. Добавьте предпочтение KeepRunning в ваш config.xml

Убедитесь, что в файле config.xml для параметра KeepRunning установлено значение true. Это предпочтение определяет, будет ли приложение работать в фоновом режиме даже после pause событие пожары. Установка этого значения в ложное не убивает приложение после события паузы, а просто останавливает выполнение кода в веб-просмотре cordova, пока приложение находится в фоновом режиме.

Добавьте следующий тег внутри тег в config.xml файл вашего плагина:

Если вы создаете и запускаете свое приложение, а обратные вызовы по-прежнему игнорируются, перейдите к шагу 3.

3. Убедитесь, что Cordova загружается

В качестве последнего шага, и это, вероятно, причина того, что слушатели не запускаются. Убедитесь, что вы включили скрипт cordova в свой основной HTML-документ. Некоторые разработчики комментируют скрипт cordova, потому что они делают тесты непосредственно в браузере, иногда это может привести к этой проблеме, потому что они забывают снова включить скрипт.

Проверьте документ и, если скрипт действительно не загружается, используйте следующий тег скрипта, чтобы добавить его:

Это должно решить проблему, и ваши обратные вызовы будут запущены без проблем. Помните, что этот файл добавляется, когда вы добавляете новую платформу (например, cordova platform add android, а затем cordova build android) файл (cordova.js) автоматически создается в assets/www папка.

Ссылка на основную публикацию
Adblock
detector