我已经看过关于午夜更新应用程序徽章的问题,选项有:应用程序未启动或在后台,当通知到达时,徽章编号可以减少并更改应用程序图标徽章;当应用程序关闭时,推送通知徽章计数不更新并更新徽章图标;等等。但我遇到的问题与应用程序在后台且推送通知到达时相同,应用程序徽章图标不更新。
我已经检查了所有的可能性。我的代码是:
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
UIApplicationState appState = UIApplicationStateActive;
if ([application respondsToSelector:@selector(applicationState)]) {
appState = application.applicationState;
}
for (id key in userInfo) {
NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
}
NSLog(@"remote notification: %@",[userInfo description]);
[UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo valueForKey:@"aps"] valueForKey:@"badge"] integerValue];
UIApplicationState state = [application applicationState];
if (state == UIApplicationStateActive)
{
NSString *message = [[userInfo valueForKey:@"aps"] valueForKey:@"alert"];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@""
message:message
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}
是的,当应用程序在前台时,它工作正常,然后它显示警报正常。但是当应用程序在后台时,既没有任何事件发生,也没有应用程序徽章图标更新。我还设置了后台模式,如ios7.1所示:推送红点更新问题,我还测试了应用程序徽章图标接收正确,并在应用程序处于前台时打印在NSLog中。我需要设置它未读消息作为徽章图标时,应用程序是在后台和它的工作罚款,但它应该更新时,任何新的消息推送到达。请建议我的选项。
通常在所有应用程序中,未读通知计数都保存在服务器中。当服务器向特定设备发送推送通知时,令牌服务器会将徽章计数与有效负载一起发送。
您的服务器逻辑需要跟踪正确的徽章计数并适当发送。
{
"aps" :
{
"alert" : "Your notification message to show",
"badge" : BADGE_COUNT ,
"sound" : "sound.caf"
}
}
这个问题终于解决了。确实,应用程序在后台时不会触发任何动作。因此,当应用程序处于后台时,appDelegate
中的didReceiveMemotentification
方法也不会触发。
当任何新推送通知到达设备时,iOS会设置应用程序徽章图标。有效载荷与@rahulPatel所说的相同。我很少改变,因为BADGEZY计数是从数据库中提取的,虽然它是整数,但是考虑到字符串和字符串不是由IOS获取的,这就是为什么当通知到达时,我的应用程序的徽标图标没有更新。现在,我的服务器端代码如下所示:
$badges=(int)$cntmsg;
$body['aps'] = array(
'alert' => $message,
'sound' => 'default',
'badge' => $badges
//'msg_id'=> $msg_id
);
因此,通过将Countmsg更改为(int),它解决了我的问题。谢谢。
当我的数据库记录在服务器上更新时,它会通过FCM向Android应用程序用户发送推送通知。通知已发送,但设备上的徽章计数未更新。如何设置更改徽章应用程序图标的通知?
在我的应用程序中,我使用firebase推送通知。我想为所有版本的设备(如Whatsapp)显示应用图标徽章(应用图标上的点), 在Android8中,徽章仅通过打开设置(在手机中)显示- 默认情况下,我需要打开此设置
我的应用程序使用推送通知。当我将应用程序安装到设备时,应用程序图标会显示推送通知徽章。徽章编号保持不变,不会随新通知更新。 安装应用程序后,只有当我的应用程序收到实际推送通知时,是否有办法不显示徽章?
我需要在我的应用程序图标上显示徽章 我所尝试的: > 2.我已经浏览了许多已经在stackoverflow上的可用答案,如 如何在应用程序启动器图标中显示通知计数 我们可以在android应用程序图标(如iphone)上显示徽章号码吗? 如何在Redmi上使用应用程序图标显示徽章计数? 在android应用程序图标上添加未读通知徽章 有没有办法在Android系统中为应用程序图标添加徽章? 所有这
当应用程序在后台时,如何更新包含数据负载的Firebase推送通知?有没有办法在通知中指定通知id给Firebase API? 完整的项目在github https://github.com/akshatashan/FireBaseCloudMessagingDemo中
我已经得到推送通知工作,并设法更新图标徽章计数时,应用程序被带到前台。 但我对此有点困惑。。。iPhone收到通知,弹出消息显示激活我的应用程序,徽章仅在我启动应用程序后更新。 就用户体验而言,这听起来并不正确。我的理解是,徽章计数应该通过递增计数通知用户需要采取的行动,但这要等到应用程序运行的后期才会发生。 那么,当应用程序在后台收到推送通知时,有没有办法告诉它更新徽章计数? 请注意,我的应用程