2015-08-29 13 views
9

Potrzebuję sposobu na otrzymanie cichego powiadomienia push, a następnie wyświetlenie lokalnego (aby móc przetwarzać dane przed wyświetleniem użytkownikowi) Czy jest jakiś sposób na zrobienie tego? didReceiveNotification jest wywoływana tylko, gdy jest na pierwszym planie. Wierzę, że aplikacja jest uruchamiana, gdy w tle po otrzymaniu push. Jednak wydaje się, że nie ma rozwiązania, gdy aplikacja zostanie zabita.Czy istnieje sposób na przebudzenie aplikacji na iOS po otrzymaniu powiadomienia wypychania, nawet gdy zostanie zabity?

EDIT Jestem świadomy PushKit, ale moja aplikacja nie jest aplikacją VOIP, jest to aplikacja IM.

Odpowiedz

11

Możesz użyć UIApplicationDelegate metody didReceiveRemoteNotification:, aby otrzymać "ciche" naciśnięcie, gdy aplikacja jest na pierwszym planie lub w tle, ale jeśli twoja aplikacja zostanie zabita (wymuszenie rezygnacji z przełącznika), wtedy nie ma możliwości odebrania powiadomienie w Twojej aplikacji. Powiadomienia (jeśli są dostępne) nadal będą wyświetlane użytkownikowi, dając im możliwość uruchomienia aplikacji z powiadomienia.

Dokumentacja dla tej metody delegat stanów:

Ponadto, jeśli włączona powiadomień zdalny tryb tła, system uruchamia aplikację (lub budzi go ze stanu zawieszenia) i umieszcza go w stan tła po odebraniu zdalnego powiadomienia . Jednak system nie uruchamia automatycznie Twojej aplikacji, jeśli użytkownik wymusił jej zamknięcie. W takiej sytuacji użytkownik musi ponownie uruchomić aplikację lub uruchom ponownie urządzenie, zanim system próbuje uruchomić aplikację automatycznie ponownie

+0

Ja nie zgadzam się z Twoim stwierdzeniem: _ ", ale jeśli Twoja aplikacja zostanie zabity (Test siły wyjść z przełącznika), wtedy nie ma możliwości odebrania powiadomienia. "._ Jeśli aplikacja zostanie zabita, nadal będziemy mogli otrzymać powiadomienie. Popraw mnie, jeśli się mylę. – NSPratik

+2

To nie jest moje oświadczenie jako takie. To jest Apple - patrz cytowany tekst. Oczywiście powiadomienie zostanie dostarczone do urządzenia, ale nie do metody delegowania aplikacji. – Paulw11

+1

@ Paulw11 mówi poprawnie, gdy aplikacja jest zabijana, otrzymywane jest powiadomienie, ale delegat nie będzie połączony. Jego normalne powiadomienie push. A jeśli nasza aplikacja znajduje się w tle, aplikacja : handleActionWithIdentifier: forRemoteNotification: completionHandler: metoda wywoła – Bevan

Powiązane problemy