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ń).
Czy to czytasz? Wierzę, że odpowiada na twoje pytanie http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/IPhoneOSClientImp.html –
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ąć. –
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? –