收到推送通知时如何设置徽章图标

How to set badge icon when push notification is received

我正在开发 iOS 聊天应用程序,它位于 UIWebView 中。我也实现了推送通知。但我想知道如何检测设备上是否收到聊天消息(推送通知)并能够相应地设置徽章图标。

使用 parse.com(推送通知的默认值),您可以通过将 "badge" 键设置为您想要的任何数字来 "send a badge"。接收端的操作系统将为您设置徽章编号。见下文:

    PFPush *push = [[PFPush alloc] init];
    NSString *userChannel = [NSString stringWithFormat:@"USER-%@", userId];
    [push setChannel:userChannel];
    NSDictionary *data = @{@"alert":@"You have a new review!",@"badge":@1, @"sound":@"default"};
    [push setData:data];
    [push sendPushInBackground];

从 iOS 8 开始,请注意,如果您希望接收者在收到推送通知时听到提示音,还必须包含 "sound" 键。

在接收端,您可能希望在用户打开应用后清除徽章图标。你这样做如下:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
    [PFPush handlePush:userInfo];
}