gpt4 book ai didi

ios - 推送通知到达时应用程序角标(Badge)图标未更新

转载 作者:可可西里 更新时间:2023-11-01 05:03:15 28 4
gpt4 key购买 nike

我已经查看了关于 Updating application badge at midnight with options: app not launched or in background, badge number can decrease 的问题和 Changing application icon badge when notification arrivesPush Notification Badge Count Not UpdatingUpdate badge icon when app is closed还有更多,但我有同样的问题,当应用程序在后台并且推送通知到达时,应用程序角标(Badge)图标没有更新。

我已经检查了所有的可能性。我的代码是:

-(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];

}
}

是的,当应用程序处于前台时它工作正常然后它显示警报正常。但是当应用程序在后台时,既没有发生任何事件也没有更新应用程序角标(Badge)图标。我还设置了背景模式,如 ios7.1: push notification badge update issue 所示。并且我还测试了当应用程序处于前台时应用程序角标(Badge)图标被正确接收并打印在 NSLog 中。当应用程序在后台运行并且它工作正常时,我需要将它设置为未读消息作为角标(Badge)图标,但是当任何新的推送通知到达时它应该被更新。请给我建议选项。

最佳答案

这个问题终于解决了。确实,当应用程序处于后台时,不会触发任何操作。因此 appDelegate 中的 didReceiveRemoteNotification 方法在应用处于后台时也不会触发。

当任何新的推送通知到达设备时,应用程序角标(Badge)图标由 iOS 设置。有效负载与@rahulPatel 所说的相同。我几乎没有做任何改变,因为 BADGE_COUNT 是从数据库中获取的,虽然它是 INTEGER,但考虑到字符串和字符串不被 iOS 使用,这就是为什么我的应用程序的角标(Badge)图标在通知到达时没有更新的原因。现在我的服务器端代码变成这样:

$badges=(int)$cntmsg;

$body['aps'] = array(
'alert' => $message,
'sound' => 'default',
'badge' => $badges
//'msg_id'=> $msg_id
);

所以通过将 count msg 更改为 (int) 它解决了我的问题。谢谢。

关于ios - 推送通知到达时应用程序角标(Badge)图标未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23931484/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com