2012-01-25 6 views
11

Jaka jest najczęściej stosowana strategia? Próbuję teraz wdrożyć następujące:Powiadomienia push w systemie iOS - jak postępować z identyfikatorem urządzenia?

Na początku aplikacji:

  • Get wcześniej zapisanego Identyfikator urządzenia z jakiegoś lokalnego przechowywania
  • Get urządzenie Id
  • Jeśli zmienione, zapisz nowy identyfikator, wyślij aktualizacja do serwera

Czy to właściwe podejście? Jaki jest najlepszy sposób lokalnego przechowywania identyfikatora urządzenia?

Odpowiedz

5

Najlepszą praktyką jest wysyłanie tokena urządzenia wypychającego (nie takiego samego, jak unikalny identyfikator opisany przez Serg Shiyan) do Apple przy każdym uruchomieniu aplikacji. Dzięki temu Apple będzie wiedzieć, że Twoja aplikacja jest nadal aktywna.

Zobacz rejestracji dla zdalnych powiadomień Push:

Wnioskując urządzenie tokenu i przekazania go do dostawcy Za każdym razem uruchamia aplikację, przyczyni się do zapewnienia, że ​​dostawca ma bieżącego tokenu dla urządzenia.

z Local and Push notifications Programming guide

Z mojego doświadczenia istnieje wiele powodów, dla których tokeny Push może zostać unieważniony. Należą do nich deinstalli aplikacje i aplikacje do mieszania z różnymi certyfikatami (dev, ad-hoc działające przeciwko piaskownicom/serwerom push na żywo). Pozwoli to zaoszczędzić trochę debugowania, wysyłając token za każdym razem, gdy jest to zalecane.

W zasadzie nie ma powodu, aby przechowywać token inny niż w pamięci, gdy aplikacja jest uruchomiona. Wystarczy, że poprosisz o nowy (prawdopodobnie ten sam) przy następnym uruchomieniu aplikacji.

+0

Dziękuję. Jedyną rzeczą jest to, że nadal potrzebuję jakiegoś tokena, aby przekazać go serwerowi, aby zidentyfikować użytkownika/urządzenie i nadal muszę go jakoś zachować na urządzeniu. Domyślam się domyślnie. –

+0

Tak, identyfikacja użytkownika prawdopodobnie odbywa się najlepiej przy użyciu innego mechanizmu (tokenów urządzenia, kont użytkowników itd.), Przechowywanych w pęku kluczy, domyślnych ustawieniach użytkownika, a nawet iCloud. W ten sposób możesz nawet mieć sytuacje, w których ten sam użytkownik ma wiele zarejestrowanych tokenów push, jeśli używa aplikacji na wielu urządzeniach. –

3

„Ciąg alfanumeryczny unikalny dla każdego urządzenia w oparciu o różne szczegóły sprzętowych. (Tylko do odczytu) (przestarzałe w iOS 5.0. Zamiast stworzyć niepowtarzalny identyfikator specyficzne dla aplikacji).

@property (nonatomic, readonly, retain) NSString *uniqueIdentifier 

Szczególne względy Nie należy używać właściwości uniqueIdentifier Aby utworzyć unikatowy identyfikator specyficzny dla aplikacji, można wywołać funkcję CFUUIDCreate, aby utworzyć identyfikator UUID, i zapisać go w bazie danych defaults, używając klasy NSUserDefaults. " (Apple Inc)