【发布时间】:2017-05-11 04:08:18
【问题描述】:
我有一个应用程序和一个服务器端推送发件人。当新的通知到达时,服务器会发送一个空的推送消息,其中只包含一个徽章更新。
当应用在后台时,徽章更新成功。但是,当应用程序处于前台时,徽章根本不会更新 - 推送被传递到应用程序,应用程序将其丢弃。
显而易见的解决方法是在应用程序中捕获推送并更新徽章。由于某些技术原因,这需要一些时间才能生效(开发时间、应用商店检查时间、不经常升级的用户等)
我想知道是否有办法绕过此问题并使用服务器端 APNs 推送更新徽章,而不管应用程序状态、前景或背景如何。
有没有办法在应用处于前台时使用推送消息更改 iOS 应用徽章,而无需从应用内部处理推送通知?
【问题讨论】:
-
只有通过
AppDelegate中的- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo函数,在前台收到通知时才会调用该函数,从payload中读取值并赋值给[UIApplication sharedApplication].applicationIconBadgeNumber=BADGEVALUE; -
@iphonic 所以不改变客户端代码就没有办法吗?谢谢。你想把你的评论写成完整的答案吗?
标签: ios apple-push-notifications foreground