繁体   English   中英

通过应用程序图标打开时的UILocalNotification句柄?

[英]UILocalNotification handle when opened via App icon?

我是第一次使用UILocalNotifications。 主要用于重复通知。 除一件事外,大多数都有意义。

Apple文档说明了几种在触发时处理本地通知的情况。

首先,一种情况是用户在应用程序外部时“点击通知”:

如果通知是警报,并且用户点击操作按钮(或者,如果设备已锁定,则拖动以打开操作滑块),则将启动应用程序。 在application:didFinishLaunchingWithOptions:方法中,应用程序委托可以使用UIApplicationLaunchOptionsLocalNotificationKey键从传入的选项字典中获取UILocalNotification对象。 委托可以检查通知的属性,如果通知在其userInfo字典中包含自定义数据,则它可以访问该数据并进行相应的处理。

它还说明了用户在应用程序内部时发生的情况:

如果应用程序是最重要的,并且在系统发出通知时可见,则不会显示警报,不会标记图标,也不会播放声音。 但是,如果应用程序委托实现了application:didReceiveLocalNotification:,则将调用它。 UILocalNotification实例被传递到此方法,并且委托可以检查其属性或访问userInfo词典中的任何自定义数据。

在这两种情况下,开发人员都可以访问uilocalnotification,然后决定如何处理它。 但是,在第三种情况下-当应用程序外部的用户看到并忽略该通知,然后在以后启动该应用程序时,不会调用任何方法来允许该应用程序知道以前触发了哪些通知?

起初,我以为该语句描述了这种行为,但是现在我不确定:

另一方面,如果本地通知仅标记应用程序图标,并且作为响应用户启动了该应用程序,则将调用application:didFinishLaunchingWithOptions:方法,但选项字典中不包括UILocalNotification对象。

我该如何处理第三种情况? 我如何知道触发了哪些本地通知? 我需要遍历清单并亲自检查所有时间吗? 有没有更好的方法可以做到这一点?

您需要跟踪通知所发生的情况。 我的意思是,因为通知已触发,并且用户没有因为通知而启动应用程序,也没有在通知时运行您的应用程序,因此您需要检查您的来源以验证是否以前预定的通知触发日期已经过去。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM