Iphone 应用程序关闭时更新徽章图标
当我收到PN时,我正在尝试更新appclosed的徽章图标 我尝试将代码添加到中,但当我的应用程序关闭时,代码不起作用。当应用程序在前台运行时,它会工作Iphone 应用程序关闭时更新徽章图标,iphone,ipad,apple-push-notifications,Iphone,Ipad,Apple Push Notifications,当我收到PN时,我正在尝试更新appclosed的徽章图标 我尝试将代码添加到中,但当我的应用程序关闭时,代码不起作用。当应用程序在前台运行时,它会工作 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSDictionary *remoteNotif = [launchOptions objectForKey
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSDictionary *remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];
//Accept push notification when app is not open
if (remoteNotif) {
[application setApplicationIconBadgeNumber:100];
return YES;
}
}
-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 30];
}
对于该设置,在didFinishLaunchingWithOptions:方法中applicationBadgeNumber=1或0,如下面所示
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
请参阅此链接中UILocalNotification的另一个答案
另外还有另一个用于此链接的远程通知的链接,该链接在didFinishLaunchingWithOptions中设置ApplicationBadgeNumber=1或0:method like bellow
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
请参阅此链接中UILocalNotification的另一个答案
另外,如果您的应用程序处于关闭状态或处于后台,推送通知将不会唤醒它。您需要在服务器端执行此操作,并在通知负载中包含您希望在图标上看到的号码:
{
"aps" : {
"alert" : "Your notification message",
"badge" : 1
}
}
如果你的应用程序已关闭或处于后台,则推送通知不会将其唤醒。您需要在服务器端执行此操作,并在通知负载中包含您希望在图标上看到的号码:
{
"aps" : {
"alert" : "Your notification message",
"badge" : 1
}
}
请查看上的Apple文档,因为推送通知是由iOS处理的,而不是由应用程序处理的,因此在收到推送通知时,您无法更改应用程序标记 但是您可以在推送通知的有效负载中发送徽章号,但是您必须在服务器端进行计算 有效载荷可能如下所示:
{
"aps" : {
"alert" : "You got your emails.",
"badge" : 1
}
}
现在,应用程序标记图标将显示1。由于推送通知由iOS而不是您的应用程序处理,因此在收到推送通知时,您无法更改应用程序标记 但是您可以在推送通知的有效负载中发送徽章号,但是您必须在服务器端进行计算 有效载荷可能如下所示:
{
"aps" : {
"alert" : "You got your emails.",
"badge" : 1
}
}
现在,应用程序徽章图标将显示1。感谢您的澄清。我阅读了Push Notification编程指南,看到了这样一句话:如果通知到达时目标应用程序没有运行,则会播放或显示警报消息、声音或标记值。如果应用程序正在运行,系统将通知作为NSDictionary对象传递给应用程序委托。字典包含相应的Cocoa属性列表对象和NSNull。我一直认为该应用程序可以在关闭时收听。感谢您的澄清。我阅读了Push Notification编程指南,看到了这样一句话:如果通知到达时目标应用程序没有运行,则会播放或显示警报消息、声音或标记值。如果应用程序正在运行,系统将通知作为NSDictionary对象传递给应用程序委托。字典包含相应的Cocoa属性列表对象和NSNull。我一直认为该应用程序可以在关闭时收听。感谢您的澄清。我阅读了Push Notification编程指南,看到了这样一句话:如果通知到达时目标应用程序没有运行,则会播放或显示警报消息、声音或标记值。如果应用程序正在运行,系统将通知作为NSDictionary对象传递给应用程序委托。字典包含相应的Cocoa属性列表对象和NSNull。我一直认为该应用程序可以在关闭时收听感谢您的澄清。我阅读了Push Notification编程指南,看到了这样一句话:如果通知到达时目标应用程序没有运行,则会播放或显示警报消息、声音或标记值。如果应用程序正在运行,系统将通知作为NSDictionary对象传递给应用程序委托。字典包含相应的Cocoa属性列表对象和NSNull。我一直认为应用程序可以在关闭时监听