我第一次使用UILocalNotifications。主要处理重复通知。除了一件事,大多数都是有道理的。
Apple Documentation说明了几种处理本地通知的情况。
首先,当用户在App:
之外时“点击通知”的情况如果通知是警报,则用户点击操作按钮 (或者,如果设备被锁定,拖动打开动作滑块), 应用程序启动。在里面 application:didFinishLaunchingWithOptions:方法应用程序 委托可以从传入中获取UILocalNotification对象 使用选项字典 UIApplicationLaunchOptionsLocalNotificationKey键。代表可以 检查通知的属性,如果是通知 在其userInfo字典中包含自定义数据,它可以访问它 数据并据此处理。
它还说明了用户在App中的情况:
如果应用程序是最重要的,并且在系统交付时可见 通知,没有显示警报,没有图标标记,没有声音 玩过的。但是,应用程序:didReceiveLocalNotification:是 如果应用程序委托实现它,则调用它。该 UILocalNotification实例传递给这个方法,并且 委托可以检查其属性或访问来自的任何自定义数据 userInfo字典。
在这两种情况下,开发人员都可以访问uilocalnotification,然后决定如何处理它。但是,在第三种情况下 - 当应用程序外部的用户看到并忽略通知然后启动应用程序时,没有调用任何方法允许应用程序知道先前已经触发了哪些通知?
起初我认为这句话描述的是这种行为,但现在我不确定:
另一方面,如果本地通知只标记了 应用程序图标,响应中的用户启动应用程序, 应用程序:didFinishLaunchingWithOptions:方法被调用,但是 选项字典中不包含UILocalNotification对象。
我该如何处理第三种情况?我怎么知道哪些本地通知已被解雇?我是否需要遍历我的列表并自行检查所有时间?有没有更好的方法来实现这一目标?
答案 0 :(得分:0)
您需要跟踪通知发生的情况。我的意思是,因为通知已被触发,并且用户由于通知而未启动应用,也未在通知时运行您的应用,因此您需要检查您的来源以验证之前是否有预定通知已解雇日期已经过去。