Ponieważ nie przyszedł Innym możliwym rozwiązaniem z iOS 7, mam zamiar zapewnić dodatkową odpowiedź dla użytkowników iOS 7 i dalej.
Nowa funkcja Background Fetch umożliwia regularną aktualizację zawartości aplikacji, która znajduje się w tle. Przedział czasu pobierania nie może być ustawiony przez użytkownika, ale jest raczej ustalany przez system iOS na podstawie statystyk jego użytkownika (użycie aplikacji itp.).
Ta nowa funkcja jest dostępna za pośrednictwem PhoneGap/Cordova za pośrednictwem wtyczek - na szczęście istnieje już been developed a plugin zapewniający ten dostęp. Można zainstalować go do projektu Cordova przez
cordova plugin add https://github.com/christocracy/cordova-plugin-background-fetch.git
W połączeniu z wtyczką zapewnienie dostępu do iOS's local notifications, to działa cuda. Taka wtyczka została również opracowana, na przykład this one. zainstalować ją na swoim projekcie Cordova przez
cordova plugin add https://github.com/katzer/cordova-plugin-local-notifications.git
Te wtyczki można teraz połączyć w kodzie JavaScript, aby wykonać czynności w tle:
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);
}
Ten Pobieranie wtyczka jest za pomocą wartości UIApplicationBackgroundFetchIntervalMinimum
dla sprowadzania przedziale , powoduje to najszybszą możliwą częstotliwość pobierania.
spróbuj także tej wtyczki - https://github.com/katzer/cordova-plugin-background-mode –