UILocalNotification дръжка при отваряне чрез икона на приложение?

За първи път работя с UILocalNotifications. Работи предимно с повтарящи се известия. Почти всичко има смисъл, с изключение на едно нещо.

Документацията на Apple посочва няколко случая за обработка на локални известия, когато се задействат.

Първо, случай, когато потребителят „докосне известието“, когато е извън приложението:

Ако известието е предупреждение и потребителят докосне бутона за действие (или, ако устройството е заключено, отвори плъзгача за действие), приложението се стартира. В метода application:didFinishLaunchingWithOptions: делегатът на приложението може да получи обекта UILocalNotification от предадения речник на опциите, като използва ключа UIApplicationLaunchOptionsLocalNotificationKey. Делегатът може да инспектира свойствата на известието и, ако известието включва персонализирани данни в своя речник userInfo, той може да получи достъп до тези данни и да ги обработи по съответния начин.

Той също така посочва случай какво се случва, когато потребителят е в приложението:

Ако приложението е най-отпред и се вижда, когато системата достави известието, не се показва предупреждение, няма икона със значка и не се възпроизвежда звук. Приложението:didReceiveLocalNotification: обаче се извиква, ако делегатът на приложението го внедри. Екземплярът UILocalNotification се предава в този метод и делегатът може да провери свойствата му или да получи достъп до персонализирани данни от речника userInfo.

И в двата случая разработчикът може да получи достъп до uilocalnotification и след това да реши какво да прави с него. В трети случай обаче - когато потребителят, извън приложението, види и игнорира известието и след това стартира приложението по-късно, не се извиква метод, който позволява на приложението да знае кои известия са били задействани преди това?

Първо си помислих, че това изявление описва това поведение, но сега не съм сигурен:

От друга страна, ако локалното известие обозначава само иконата на приложението и потребителят в отговор стартира приложението, се извиква методът application:didFinishLaunchingWithOptions:, но в речника на опциите не е включен UILocalNotification обект.

Как мога да се справя с третия случай? Как мога да разбера кои локални известия са задействани? Трябва ли да преглеждам моя списък и сам да проверявам всичките им времена? Има ли по-добър начин да се постигне това?


person dtmland    schedule 25.05.2013    source източник


Отговори (1)


Трябва да следите какво се случва с вашите известия. Това, което имам предвид с това е, че тъй като известието е задействано и потребителят не е стартирал приложението поради известие, нито приложението ви е работело по време на известието, трябва да проверите източниците си, за да проверите дали преди това планираната дата за задействане на известието вече е изтекла.

person J2theC    schedule 25.05.2013
comment
Благодаря за отговора. След допълнително проучване открих, че въпросът ми е дубликат на тази публикация: stackoverflow .com/questions/16469721/ - person dtmland; 26.05.2013
comment
здравей @dtmland намери ли решението за този проблем...може ли да го споделиш?? - person Hardik Amal; 04.03.2016