2013-07-19 11 views
6

Sprawdzam, jak dodawać powiadomienia do naszej aplikacji, gdy wydarzenie ma się rozpocząć. Inne aplikacje z prostym kalendarzem udostępniają tę funkcję, ale moje badania nie pozwalają mi zrozumieć, jak to się dzieje.Monitorowanie kalendarza iOS w tle - jak to się robi?

Zgodnie z dokumentacją Apple: W przypadku zadań wymagających dłuższego czasu realizacji, należy zażądać określonych uprawnień, aby uruchomić je w tle bez zawieszenia. W iOS, tylko określone typy aplikacji mogą działać w tle:

  • Apps, które odgrywają materiały dźwiękowe do użytkownika, podczas gdy w tle, takie jak aplikacji odtwarzacza muzyki
  • Aplikacje powiadamiania użytkowników o ich lokalizacji w każdym czasie, jak app nawigacji
  • Aplikacje obsługujące Voice over Internet Protocol (VoIP)
  • aplikacje Kiosku, które trzeba pobrać i przetworzyć nowe treści
  • aplikacji, które regularnie otrzymywać nowości od akcesoriów zewnętrznych

Ok, dobrze, aplikacja Kalendarz jest żaden z nich. Jeśli zaplanuję lokalne powiadomienia dla mojej aplikacji, aby okresowo się budzić i sprawdzać kalendarz, to nie wystarczy, afaict z lektury, którą zrobiłem. Korzystanie z opcji monitorowania lokalizacji nie wystarczy - co zrobić, jeśli mój użytkownik siedzi w swoim biurze przez cały dzień?

Zdarzenia z kalendarza można dodawać/usuwać z innych źródeł obok telefonu, oczywiście, więc konfigurowanie zestawu powiadomień, gdy moja aplikacja się uruchamia, nie jest rozwiązaniem.

W jaki sposób aplikacje kalendarza realizują powiadomienia sprzed zdarzenia? Mam kilka aplikacji kalendarza z App Store i robią to, więc wiem, że można to zrobić. Moja aplikacja również musi być akceptowalna przez App Store, więc nie mogę oszukać systemu VoIP jako rozwiązania.

Informacje dodatkowe: po dalszych badaniach aplikacje, które widzę, nie robią aktualizacji po ich wyłączeniu (duh), ale wykonują pewne aktualizacje w tle. Nadal nie jestem pewien, jak utrzymać długi proces w tle (np. Z dnia na dzień).

+0

Czy to czytasz? Wierzę, że odpowiada na twoje pytanie http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/IPhoneOSClientImp.html –

+1

Tak, przeczytałem, ale nie wyjaśnia, w jaki sposób monitorować zmiany w kalendarzu. Wystarczy skonfigurować kilka powiadomień lokalnych, gdy aplikacja jest otwarta, nie wymaga reakcji na zmiany w kalendarzu i dostarczenia użytkownikowi powiadomienia, że ​​zdarzenie ma się rozpocząć. –

+0

Jeśli chcesz tylko przypomnieć użytkownikom o zdarzeniach, a kalendarz jest przechowywany i aktualizowany gdzieś zdalnie, co jest nie tak z wysyłaniem powiadomień o zdarzeniach, które nie zostały jeszcze zsynchronizowane z kalendarzem aplikacji iOS? –

Odpowiedz