本地通知徽章编号不超过一个

Posted

技术标签:

【中文标题】本地通知徽章编号不超过一个【英文标题】:local notification badge number not more than one 【发布时间】:2015-07-13 09:34:14 【问题描述】:

在几分钟内,我同时收到了两个不同的本地通知。 但是应用程序的徽章编号显示“1”而不是“2”

我的代码:

var localNotification = UILocalNotification()

localNotification.userInfo = ["UUID": FirstReminderString, ]
localNotification.fireDate = SameDay
localNotification.alertBody = "Reminder !"
localNotification.timeZone = NSTimeZone.defaultTimeZone()
localNotification.applicationIconBadgeNumber = UIApplication.sharedApplication().applicationIconBadgeNumber + 1

UIApplication.sharedApplication().scheduleLocalNotification(localNotification)

【问题讨论】:

您可能会在this related question 中找到有用的附加信息。 好的,这意味着在注册新通知之前,我必须检查同一天有多少通知处于活动状态,并为新通知获取此计数 + 1?我如何查看一天的通知数量? 【参考方案1】:

当您安排通知时,会采用当前的徽章编号(可能为 0)。因此,在徽章编号增加之前,您安排的所有通知的新徽章编号将为 1。

【讨论】:

【参考方案2】:

如果您的应用处于前台模式:您可以通过以下代码调整徽章编号:

func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) 

    application.applicationIconBadgeNumber = application.applicationIconBadgeNumber + 1; // increase counter

如果应用处于后台模式,则不会调用此方法。

所以我们必须在服务器中做如下事情:

func sendLocalNotif(notifCountAlreadySent:Int) 

    var localNotification = UILocalNotification()

    localNotification.userInfo = ["UUID": FirstReminderString, ]
    localNotification.fireDate = SameDay
    localNotification.alertBody = "Reminder !"
    localNotification.timeZone = NSTimeZone.defaultTimeZone()
    localNotification.applicationIconBadgeNumber = notifCountAlreadySent + 1

    UIApplication.sharedApplication().scheduleLocalNotification(localNotification)

看看有没有帮助。此函数接收一个跟踪号。那被用作徽章编号。您只需跟踪已经发送了多少通知。

【讨论】:

thx 但我需要一个解决方案,它设置当前接收区域设置通知的徽章编号 - 同时也是后台应用程序 @Ghost108 您写道:“两个不同的本地通知”。您是否可以访问这 2 个本地通知发件人? 为误会感到抱歉。两个内容不同的本地通知。但是firedate和时间是一样的 @Ghost108 应用程序在后台模式下无法跟踪通知计数。它必须从服务器完成。您只需从通知发件人代码中跟踪一个号码。你清楚吗? sry,我明白你的意思,但我不知道如何解决它。你能帮帮我吗?

以上是关于本地通知徽章编号不超过一个的主要内容,如果未能解决你的问题,请参考以下文章

ios - 应用程序关闭时本地通知不更新徽章编号

Swift 本地通知图标徽章编号不递增

取消本地通知时删除徽章编号

如何增加应用程序徽章编号以进行定期本地通知(iPhone)

swift 本地通知弹出,没有徽章

IOS10本地通知使用UNUserNotification时如何设置徽章