/ / Jak uzyskać dostęp do ostatniego lokalnego powiadomienia, jeśli użytkownik zignorował ostatni alert na ios? - ios, uilocalnotification

Jak uzyskać dostęp do ostatniego powiadomienia lokalnego, jeśli użytkownik zignorował ostatni alert w systemie ios? - ios, notifikacja

Moja aplikacja działa w tle, alert powiadomienia wyświetlał się poprawnie, a numer plakietki został zwiększony o 1. JEŚLI użytkownik kliknie alert, wszystko działa dobrze, a delegat didReceiveLocalNotification jest nazywany.

Ale użytkownik zignorował alert. Po pewnym czasie, gdy użytkownik ponownie otworzy moją aplikację, jedynym wywołanym delegatem jest didBecomeActive. Jak mogę coś zrobić (pokaż a UIAlertView na przykład), na podstawie ostatniego zignorowanego alertu?

Odpowiedzi:

3 dla odpowiedzi № 1

Sam iOS nie zapewnia na to żadnej metody.

Ale możesz po prostu to zrobić:

  1. Podczas rejestrowania powiadomienia na iOS - zapisz wszystkie dane powiadomienia do pliku.
  2. Po uruchomieniu aplikacji wczytaj plik powiadomień i wszystkie powiadomienia, które wygasły (NSDate < teraz) - są to powiadomienia ignorowane.
  3. Przed wykonaniem 2. musisz sprawdzić, czy ktoś nie przyszedł z powiadomienia i usunąć je z twojego pliku.

Jest to rodzaj duplikowania systemu zarządzania powiadomieniami iOS, który niestety nie pozwala uzyskać listy zarejestrowanych powiadomień.

Pisanie powiadomienia do pliku powinno być łatwe: już implementuje protokół NSCoding.


3 dla odpowiedzi № 2

O ile wiem, jeśli powiadomienie zostanie zignorowane, nie można go odzyskać po ponownym otwarciu aplikacji.

Musisz sprawdzić usługę, która przesłała to powiadomienie, aby dowiedzieć się, czy jest coś nowego


0 dla odpowiedzi № 3

Niestety nie ma prostej drogi, aby to osiągnąć.

Możliwe obejście — jeśli użytkownik odrzuci/zignoruje powiadomienie wypychane, aplikacja może przyjrzeć się wiadomościom na serwerze i obsłużyć je w odpowiedni sposób.