2016-08-02 20 views
6

Próbuję zaplanować powiadomienie lokalnie, ponieważ nie mam jeszcze odpowiedniej struktury w zapleczu. Chodzi o to, że po upływie X okresów zatwierdzane są pewne warunki; a jeśli zostanie spełniony, uruchamiane jest regularne powiadomienie lokalne.Czy można zaplanować SILENT lokalne powiadomienia w iOS?

Można to łatwo osiągnąć za pomocą np. Timera, ale niektóre z tych okresów są wystarczająco długie (1 godzina, 24 godziny), że to nie działa.

Tak kończę, myśląc w lokalnych powiadomieniach. Mógłbym zaplanować jeden z wypalonym + 24 h. Chodzi o to, że potrzebuję tego, aby milczeć, aby potwierdzić warunki.

Z sekcji configuring a local notificationhere wynika, że ​​tylko zdalne powiadomienia mogą być ciche, ale tak naprawdę nie można tego zrobić.

Ponadto odkryłem, że możliwe jest wyzwolenie lokalnego powiadomienia bez niczego oprócz numeru znaczka, który zmieni plakietkę. Chociaż wywołania zwrotne w moim AppDelegate nigdy nie są wywoływane.

Widziałem, jak niektórzy ludzie mówią, że nie da się tego zrobić, ale nie znaleźliśmy prawdziwego, twardego oficjalnego dowodu, który to potwierdził. Czy ktoś to zrobił? Czy wiesz na pewno, że jest to niemożliwe? Każda rada będzie bardzo pomocna, dziękuję z dużym wyprzedzeniem!

+0

Nie można uzyskać "cichego" powiadomienia lokalnego. Tryb pobierania w tle może być użyty – Paulw11

+0

@ Paulw11 Yep, ale działa tylko w przypadku powiadomień zdalnych, prawda? Czy nie można obudzić aplikacji bez zdalnego powiadomienia? –

+2

Tryb pobierania tła nie ma nic wspólnego z powiadomieniami. Jest to tryb tła, w którym możesz wybrać miejsce, w którym iOS okresowo budzi Twoją aplikację. Przeczytaj sekcję trybów tła w przewodniku po programowaniu aplikacji na iOS. – Paulw11

Odpowiedz

3

Próbowałem i miałem takie samo doświadczenie jak ty - wywołania zwrotne nie są wywoływane, gdy moja aplikacja nie jest na pierwszym planie. Jest to zgodne z projektem. Dokumentacja firmy Apple twierdzi, że funkcja zwrotna jest wywoływana tylko wtedy, gdy aplikacja jest na pierwszym planie userNotificationCenter:willPresentNotification:withCompletionHandler:https://developer.apple.com/reference/usernotifications/unusernotificationcenterdelegate/1649518-usernotificationcenter?language=objc

Jedyną metodą oddzwaniania do odbierania powiadomień, gdy aplikacja nie jest na pierwszym planie jest didReceiveRemoteNotification ale niestety jest tylko dla powiadomień Push (milczy lub w przeciwnym wypadku). https://developer.apple.com/reference/usernotifications/unusernotificationcenterdelegate/1649518-usernotificationcenter?language=objc

+0

Masz na myśli, że wywołania zwrotne są wywoływane, gdy aplikacja jest na pierwszym planie? – Jonny

+1

Minęły 2 lata, odkąd pracowałem nad tą aplikacją, ale wtedy zadziałało, gdy aplikacja była na pierwszym planie. Nowsze wersje iOS mogły to zepsuć. – stackunderflows