IOS,应用启动时如何处理多个本地通知?

Posted

技术标签:

【中文标题】IOS,应用启动时如何处理多个本地通知?【英文标题】:IOS, how to handle multiple local notifications when app start? 【发布时间】:2013-10-30 08:41:26 【问题描述】:

我正在创建一个使用计时器的应用。 假设用户可以设置多个定时器;对于这些计时器中的每一个,应用程序都会安排一个本地通知。当应用程序在前台运行或在后台运行时,我可以毫无问题地处理多个本地通知。 我的问题是当用户设置多个计时器并然后终止应用程序(双击主页按钮并关闭应用程序)。在这种情况下,当计时器到期时,所有相关的本地通知都会显示为横幅,并且应用程序图标徽章会增加。所以我想在用户从通知横幅启动应用程序或点击应用程序图标但使用时处理所有这些通知

didFinishLaunchingWithOptions

我只能处理一个通知

[launchOptions UIApplicationLaunchOptionsLocalNotificationKey]

我需要处理所有计时器的所有本地通知!我该怎么做?

【问题讨论】:

嗨,如果找到任何解决方案,请分享......即使我想实现这个......但还没有找到解决方案...... 【参考方案1】:

您可以为每个本地通知添加一个 id,以便了解应用触发了哪个通知:

localNotification1 = [[UILocalNotification alloc] init]; 
localNotification1.userInfo = @ "type" : @1 ;
...
localNotification2 = [[UILocalNotification alloc] init]; 
localNotification2.userInfo = @ "type" : @2 ;

http://developer.apple.com/library/ios/documentation/iPhone/Reference/UILocalNotification_Class/Reference/Reference.html#//apple_ref/occ/instp/UILocalNotification/userInfo

【讨论】:

谢谢。也许我没有很好地解释我的问题。假设用户在应用程序中设置了 2 个计时器。然后在计时器到期之前,用户终止应用程序(不在后台)。之后,当第一个计时器到期时,会显示第一个通知的横幅。假设用户忽略这个。然后第二个计时器到期并显示相关通知(始终关闭应用程序)。现在用户点击第二个通知并启动应用程序。我想在应用程序启动时为所有这些计时器显示警报,但使用 launchOptions 我只能显示一个警报 如果应用程序没有在后台运行,本地通知很可能不会触发。您应该考虑使用推送通知来满足您的需求。 我应该考虑在同一设备上为通知事件推送通知吗?我认为推送通知与客户端-服务器应用程序有关。 推送通知向您保证,即使应用没有打开,它们也会被传送到设备上,并且可以像本地通知一样处理。

以上是关于IOS,应用启动时如何处理多个本地通知?的主要内容,如果未能解决你的问题,请参考以下文章

应用未运行时如何处理远程通知

如何处理不同语言的 iOS 推送通知

当 iOS 应用程序被暂停/杀死并且用户点击通知时如何处理 Firebase 推送通知?

当应用程序不在后台运行时如何处理推送通知

应用程序关闭时如何处理localNotifications

当我的应用程序激活时如何处理推送通知?