Подтвердить что ты не робот

Может ли приложение phonegap работать в фоновом режиме?

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

Мое приложение используется для просмотра изменений цен. При изменении цены появится предупреждение со звуком.

Итак, ответ должен быть да или нет? Спасибо.

4b9b3361

Ответ 2

Так как появилось еще одно возможное решение с iOS 7, я дам дополнительный ответ пользователям iOS 7 и далее.

Новая функция Фоновая выборка позволяет регулярно обновлять контент для приложения, которое находится в фоновом режиме. Временной интервал выборки не может быть задан пользователем, но скорее устанавливается iOS на основе статистики пользователя (использование приложения и т.д.).

К этой новой функции можно обратиться с помощью PhoneGap/Cordova через плагины - к счастью, уже был разработан плагин, обеспечивающий этот доступ. Вы можете установить его в проект Cordova на

cordova plugin add https://github.com/christocracy/cordova-plugin-background-fetch.git

В сочетании с плагином, обеспечивающим доступ к локальным уведомлениям iOS, это творит чудеса. Такой плагин также был разработан, например этот. Установите его в проект в Кордове

cordova plugin add https://github.com/katzer/cordova-plugin-local-notifications.git

Эти плагины теперь могут быть объединены в ваш код javascript для выполнения фоновых действий:

function onDeviceReady() {
    var Fetcher = window.plugins.backgroundFetch;

    // Your background-fetch handler.
    var fetchCallback = function() {
        console.log('BackgroundFetch initiated');

        // perform your ajax request to server here
        $.get({
            url: '/heartbeat.json',
            callback: function(response) {
                // process your response and whatnot.

                window.plugin.notification.local.add({ message: 'Just fetched!' });  //local notification
                Fetcher.finish();   // <-- N.B. You MUST called #finish so that native-side can signal completion of the background-thread to the os.
            }
        });
    }
    Fetcher.configure(fetchCallback);
}

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

Ответ 3

Если вы создаете кордову для ios 7 + и готовы выйти из своего общего кода в xcode, вы можете добавить "требуемые фоновые режимы" в файл .plist вашей сборки ios, и она не будет перезаписана новая сборка.

например. Я выбрал вариант "Загрузка приложений из сети"

Все, что вам нужно сделать, это убедиться, что ваше приложение выдает внешний мир каждые несколько минут (я использую firebase, поэтому получаю значение манекена node).

Я еще не отправил в App Store, но не могу понять, как он должен потерпеть неудачу, если запрос не слишком частый (я понимаю, что приложения имеют около 10 минут в фоновом режиме до их приостановки) и ресурсы, которые приложение потребности в фоновом режиме/в состоянии покоя не являются обременительными.

Это позволяет решить эту проблему до нескольких строк в вашем коде.