iOS 应用程序图标上的新消息徽章

New message badge on iOS app icon

我需要显示类似这样的内容以显示我的应用程序有新通知。

但我不想一直跟踪新通知的数量。只是一个徽章来表明有新的,应该足够了。所以理想情况下,徽章是一个带有“...”的红色圆圈。

我将如何实现这一目标?

您应该在徽章中提供一些 "unread" 通知。 Apple 人机界面指南不鼓励将徽章用于通知以外的其他目的。

您的应用可能无法在 AppStore 中获准销售。

据我所知,您必须先注册本地或推送通知才能在应用程序图标上显示徽章编号。

以防万一你还没有这样做这是注册本地通知的代码

if (UIApplication.instancesRespondToSelector(Selector("registerUserNotificationSettings:"))) {
            UIApplication.sharedApplication().registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [UIUserNotificationType.Alert, UIUserNotificationType.Badge], categories: nil))
        }

didFinishLaunchingWithOptions 方法中 AppDelegate

然后在视图控制器的 viewDidLoad 方法中尝试 UIApplication.sharedApplication().applicationIconBadgeNumber = 34 进行测试

如果您使用推送通知,徽章值将由服务器维护

它应该只是数字。无法根据您的要求提供类似“...”的字符串。

因为我知道您在 Bluemix 上使用 IBM Push Notifications 服务,所以有一种简单的方法可以完成此操作。使用 IBM Push Notification 服务发送推送通知时,您可以将徽章值指示为可选负载的一部分:

iOS Badge - For iOS devices, the number to display as the badge of the app icon. If this property is absent, the badge is not changed. To remove the badge, set the value of this property to 0.

如果您通过 Bluemix 推送仪表板发送推送通知,您只需输入您希望在成功收到通知后显示的徽章值:

如果您通过 Node.js、REST 等发送推送通知,您可以将徽章值添加为选项参数。请查看我们的 REST API 文档中提供的模型以查看正确的结构:

https://mobile.ng.bluemix.net/imfpushrestapidocs/#!/messages/post_apps_applicationId_messages

apns {
badge (integer, optional): The number to display as the badge of the application icon,
.
.
.
}