42 iphone xcode objective-c push-notification
是否可以在收到通知时增加徽章值.或者我应该将计数作为有效载荷发送?
如果我每次都将徽章值发送为"1",如果应用程序未打开,我怎么能增加应用程序图标中的徽章值.
我使用过这段代码但不起作用.
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
[UIApplication sharedApplication].applicationIconBadgeNumber = [UIApplication sharedApplication].applicationIconBadgeNumber + 1;
}
Run Code Online (Sandbox Code Playgroud)
小智 53
通常在所有应用程序中,未读通知计数都在服务器中维护.当服务器向特定设备令牌发送推送通知时,他们会发送徽章计数以及有效负载.一旦设备被通知并且您的应用程序处于后台(或被杀死),操作系统会自动将徽章计数更新为您的应用程序图标.如果您的应用程序是否正在运行,您将收到通知
application:didReceiveRemoteNotification:
Run Code Online (Sandbox Code Playgroud)
委托,因此您可以从(NSDictionary*)userInfo接收徽章计数.因此,您可以使用该功能更新应用程序图标徽章计数
[UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"badgecount"] intValue];
Run Code Online (Sandbox Code Playgroud)
认为这应该对你有帮助.
当您的应用程序处于后台模式并且您想要增加徽章编号时出现推送通知时,您应该将a发送badgeCount
到服务器,以便服务器知道当前计数.
如果您从服务器端管理徽章计数,则此代码就足够了: -
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
NSLog(@"remote notification: %@",[userInfo description]);
if (userInfo) {
NSLog(@"%@",userInfo);
if ([userInfo objectForKey:@"aps"]) {
if([[userInfo objectForKey:@"aps"] objectForKey:@"badgecount"]) {
[UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"badgecount"] intValue];
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
68350 次 |
最近记录: |