4

我向用户推送没有徽章密钥或徽章 = 0 的通知有效负载,无法从通知中心删除通知。这是我的有效载荷:

{
     "aps" : {"alert" : "bala bala"}
//or "aps" : {"alert" : "bala bala", "badge" : 0}
}

然后从NC打开app,通知停留在NC,无法删除。如果我在 aps 中设置的徽章值大于 0,则应用启动后通知将被删除。

{
    "aps" : {"alert" : "bala bala", "badge" : 1}
}

已经[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];在应用启动后设置了。

为什么没有徽章密钥或徽章 = 0 无法删除通知?

谢谢。

4

3 回答 3

0

徽章为0,表示“不变”。所以,你必须为徽章设置-1。

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:-1];
于 2012-11-08T08:18:46.577 回答
0

来自:iOS 5 发行说明

  • 应用程序的推送和本地通知出现在 iOS 5 的新通知中心中。通知中心显示被视为“未读”的通知。要适应没有未读状态的推送和本地通知,请将应用程序的标记计数设置为 0 以从通知中心清除该应用程序的通知。

所以解决方法是在应用打开时将应用徽章设置为0。

于 2012-11-08T21:01:18.923 回答
0

我有同样的问题。解决方案非常简单:首先将徽章设置为 1,然后设置为 0。这应该会清除 NC 中的通知。

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
// Now the notification should be cleared out of the NC
于 2013-04-09T13:39:42.457 回答