Разберете дали известието за iOS е отхвърлено

Има ли някакъв начин да разберете дали локално известие е било отхвърлено от Центъра за уведомяване (например чрез натискане на бутона x)?

Възможно ли е да получите списък с всички известия, видими в момента в Центъра за известия?


person Andrei Ardelean    schedule 10.08.2015    source източник


Отговори (1)


Не, не е възможно да получите списък с известия от който и да е API от Apple. И не, няма обратна връзка от игнорирани / затворени известия.

Ако искате да приложите такава логика, бих предложил да изградите този тип логика въз основа на вашите собствени сървъри.

  1. Когато изпратите известие, вие съхранявате информация за него от страната на сървъра.
  2. Когато отворите приложението от известие (че е възможно), вие изпращате информация до страна на сървъра.
  3. Когато отворите приложението не от известие, можете да имате логика от страна на сървъра, проверяваща дали е имало известие, което не е потвърдено от последния път, когато сте отворили приложението.

Имайте предвид, че известията не винаги се доставят - не е гаранция, че потребителят ще ги получи и ако използването е с изключени известия за вашето приложение - всички известия ще се третират като игнорирани. За да подобрите тази логика, може да искате да изпратите информация за потребителските разрешения за известия до вашите сървъри - което все още не е гаранция, че той не ги е деактивирал в настройките :(

Накратко – никога не създавайте основна функционалност на приложението си въз основа на известия.

person Grzegorz Krukowski    schedule 10.08.2015
comment
Не е точно обаче - защото не всички известия, изпратени от сървъра, ще бъдат получени от телефона (ако телефонът е изключен например, той няма да бъде доставен) и сървърът няма да получи обратна връзка в тази ситуация, че натискането никога не е бил доставен. - person Gruntcakes; 11.08.2015
comment
Това е вярно @MartinH, но няма по-добър начин да се приложи нещо близко до това. Ако иска да проследи дали хората не са видели или игнорирали известието - трябва да е достатъчно добро. Ще редактирам отговора, за да изясня това - person Grzegorz Krukowski; 11.08.2015