Как я могу вызывать функцию каждый час, даже когда приложение находится в фоновом режиме - Cordova - PullRequest
0 голосов
/ 04 марта 2020

Я хочу вызвать функцию, которая будет отправлять запрос. Эта функция должна вызываться каждый час. Как именно мне вызывать функцию каждый час, даже если приложение находится в фоновом режиме?

Я делаю приложение в Cordova и только для android

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

используйте этот плагин: cordova-plugin-background

и в индексе используйте этот код для обновления приложения каждый час

document.addEventListener('deviceready', function () {

            cordova.plugins.backgroundMode.enable();

             cordova.plugins.backgroundMode.onactivate = function () {

               setInterval(function () {

                  YourFunctionHere();

                }, 3600000);
             }
           }, false);

ваше приложение хорошо обновлять в фоновом режиме каждый час

3600000 миллисекунд = 1 час

0 голосов
/ 06 марта 2020

Фоновые службы

Каждая новая версия Android налагает ограничения на фоновую обработку, поскольку использует оперативную память и батарею и расходует ресурсы телефона. В прошлом было много приложений, выполняющих все виды фоновых процессов, что приводило к очень плохому времени автономной работы. Начиная с Android 5/6, есть четкое указание sh на завершение фоновой обработки "делай, что хочешь, когда хочешь".

См. Официальные документы: https://developer.android.com/guide/background/

Что вы можете сделать

Таким образом, вы никогда не знаете, когда процесс вашего приложения будет приостановлен или остановлен для освобождения ресурсов. Использование чистых Javascript методов не поможет вам далеко, потому что, если процесс приложения остановлен, код Javascript не может быть запущен.

Переосмыслите дизайн вашего приложения

Вам действительно нужно проверить на вашем сервере каждый час?

Использовать пользовательский плагин

Смотрите документы и реализуйте фоновый процесс с помощью собственного кода. Для этого вам может понадобиться создать собственный плагин Cordova. Посмотрите, как они сделаны (например, плагин ioni c -plugin-deeplink ), и посмотрите ссылку Cordova . Примечания: Чтобы добавить локальный плагин в ваше приложение, просто используйте следующий код (не нужно публиковать sh его на npm, если вы не хотите или не можете)

cordova plugin add ./path/to/my/custom_plugins/cordova-plugin-my-background-process

Использовать Pu sh уведомления?

Просто идея, но вы могли бы даже обойти эту проблему, отправляя уведомления pu sh каждый час, и ваше приложение выполняет свою работу в ответ на это уведомление?

...