【问题标题】:How to set badge when using UNUserNotification for local notifications on IOS10IOS10本地通知使用UNUserNotification时如何设置徽章
【发布时间】:2017-09-07 20:31:03
【问题描述】:

我正在使用 UNUserNotification 向用户推送重复的本地通知。我正在尝试在应用程序上设置徽章编号以指示错过的通知。 我搜索了这个论坛,发现 iPhone: Incrementing the application badge through a local notification

这表示不可能定期进行本地通知。那个帖子已经有几年了,他们正在使用 UILocal 通知。

对于 UNUserNotification 仍然如此吗?有没有办法设置徽章计数?

【问题讨论】:

    标签: ios10 unusernotificationcenter


    【解决方案1】:

    设置UNMutableNotificationContent 对象的badge 属性。

    let notificationContent = UNMutableNotificationContent()
    notificationContent.badge = 3
    

    来自UNMutableNotificationContent documentation

    徽章

    显示为应用图标标志的数字。

    【讨论】:

    • 感谢内森的回复。如您所述,我能够设置徽章编号。但是我正在使用重复的本地通知,即我的本地通知每 60 分钟触发一次,我看到相同的通知一次又一次地出现,带有相同的徽章编号。您对如何设置重复通知的徽章编号有什么建议吗?
    • 您可能需要自己的逻辑来记录通知的数量。一个简单的解决方案是将计数器值保存到UserDefaults。当您发送新通知时增加此计数器,并在用户打开应用程序(或查看通知所需的任何内容)时将其重置为 0。
    • 因为我正在使用像这样的重复通知 UNTimeIntervalNotificationTrigger(timeInterval: 3600, repeats: true)。我无法控制发出的每条通知,至少我不知道如何控制每条通知。
    • 我认为目前不使用远程通知是不可能的。
    • 可能有办法,但会有局限性。不要使用repeats: true,而是发送一些通知,每个通知都有一个适当的徽章编号(1、2、3,...)。当应用程序启动时,您可以取消所有未来的通知,并使用新的徽章编号重置通知。这种方法的局限性在于它会有一个上限(您为未来安排的通知数量),这意味着它将在某个点之后停止增加。
    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多