2010-07-02 26 views
15

Biorąc pod uwagę, że otrzymuję powiadomienie na telefonie iPhone.iOS - Obsługa wysyłanych powiadomień za pomocą APNS

Co się dzieje:

  1. Jeśli aplikacja jest uruchomiona: czy istnieje sposób, aby ładunek? Czy widzę powiadomienie na moim ekranie?
  2. Jeśli aplikacja nie została uruchomiona, czy istnieje sposób na pobranie ładunku?

Thx za odpowiedzi

Odpowiedz

34

przede wszystkim powiadomień push nie są „silne”, jeśli po prostu niech siedzieć powiadomienia dla dostatecznie długi (na przykład telefon wyłączony przez wiele dni) zostanie on odrzucony. Musisz wykonać niestandardowe przetwarzanie na zapleczu, aby zachować zawartość wysyłaną w powiadomieniach.

W protokole UIApplicationDelegate znajduje się application:didFinishLaunchingWithOptions:. Jeśli Twoja aplikacja zostanie uruchomiona przez użytkownika, po dotknięciu odpowiedniego przycisku w powiadomieniu push, słownik powiązany z wywołaniem metody będzie zawierał informacje dotyczące tego powiadomienia; jeśli twoja aplikacja jest już uruchomiona, zamiast tego zostanie wywołana application:didReceiveRemoteNotification: (również w protokole delegatów).

Więc

  • Jeśli aplikacja jest uruchomiona, a następnie wdrożyć application:didReceiveRemoteNotification: tak masz ładunek. W przeciwnym razie nic się nie dzieje.

  • Jeśli aplikacja nie zostanie uruchomiona w momencie wysłania powiadomienia, użytkownik dotknie alertu z powiadomieniem i uruchomi aplikację, a aplikacja uzyska ładunek, jeśli implementuje application:didFinishLaunchingWithOptions:. W przeciwnym razie nic nie dostaniesz.

+3

Zauważyłem, że kiedyś wcześniej (07.03.2012) "launchOptions" nie jest już używany. Po otwarciu aplikacji zamiast tego wywoływana jest 'didReceiveRemoteNotification'. – Jacksonkr

+0

Jeśli nie zostanie uwzględniony alert, metoda didReceiveRemoteNotification: nigdy nie jest wywoływana dla aplikacji w tle. W przypadku iOS 6 nie można odbierać ładunków bez interakcji z użytkownikiem, gdy aplikacja nie znajduje się na pierwszym planie. Dokumentacja wspomina o tym fakcie, choć cicho. https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW4 –

+0

+1 Świetne wyjaśnienie !! – swiftBoy

Powiązane problemy