应用程序在后台时如何更新徽章编号[重复]
Posted
技术标签:
【中文标题】应用程序在后台时如何更新徽章编号[重复]【英文标题】:How to update badge number when application is in background [duplicate] 【发布时间】:2014-02-25 06:37:41 【问题描述】:我正在创建一个 ios 应用程序,我在其中从服务器获取徽章编号,当应用程序处于前台时,我正在更新徽章编号
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
但是当应用程序在后台时,我不知道应该调用哪个函数。
【问题讨论】:
试试这个 [UIApplication sharedApplication].applicationIconBadgeNumber = 2;你想要的任何数字 您可以随时编辑自己的问题。不用再问same Question了。 【参考方案1】:您可以像这样在推送通知中发送徽章编号
"aps":"badge":"3","alert":"help","sound":"sound.caf"
【讨论】:
是的,但这是唯一的方法【参考方案2】:当应用程序在后台时,didReceiveRemoteNotification
方法永远不会调用。为了在您的应用程序处于后台时执行某些操作,您需要在 AppDelegate 的 applicationDidEnterBackground:
方法中实现您的逻辑,例如。
-(void)applicationDidEnterBackground:(UIApplication *)application
[UIApplication sharedApplication].applicationIconBadgeNumber = 2;
【讨论】:
我知道,当应用程序在后台时,didReceiveRemoteNotification 方法永远不会调用。此方法 applicationDidEnterBackground: 当我单击主页按钮时调用。这是错误的。当应用程序处于后台时,徽章编号永远不会更新,通过此代码,我可以在单击主页按钮时更新徽章编号。这不是我的问题。我想在应用程序处于后台时更新徽章编号。有什么困惑吗?? 然后你可以使用这个方法applicationWillEnterForeground,基本上它的服务器负责给你发送徽章编号,作为iOS开发者我们只清除徽章编号。请与您的 Web 端开发人员联系,向您发送推送字典中的徽章编号,例如 // 创建有效负载主体 $body['aps'] = array( 'alert' => $message, 'badge' => 1, 'sound ' => '默认' );否则你将无法做到这一点。希望这能解决您的困惑。【参考方案3】:您可以从服务器本身发送徽章编号。
默认情况下,当您在 APN 有效负载中指定徽章编号时,无需设置应用程序的徽章编号。如果您没有从服务器收到徽章编号,那么在用户打开应用程序之前,您无论如何都不能这样做。
但在 ios7 APN 中有一个新功能。
通过设置flag Content-Available:1
会让您的应用程序在收到通知后立即运行,您可以在那里设置您的徽章编号。
【讨论】:
@coolMonster- 这可以是评论 @VivekSehrawat 你是对的..这应该是评论:) 我现在要求的是 iOS_6 而不是 iOS_7。 那么唯一的办法就是从服务器推送徽章号码。【参考方案4】:使用这个
- (void)applicationDidEnterBackground:(UIApplication *)application
[UIApplication sharedApplication].applicationIconBadgeNumber = X;
NSLog(@"Application Did Enter Background");
在推送通知的有效负载中向您发送徽章编号
【讨论】:
我知道,当应用程序在后台时,didReceiveRemoteNotification 方法永远不会调用。此方法 applicationDidEnterBackground: 在我单击主页按钮时调用。这是错误的。当应用程序处于后台时,徽章编号永远不会更新,通过此代码,我可以在单击主页按钮时更新徽章编号。这不是我的问题。我想在应用程序处于后台时更新徽章编号。有什么困惑吗?? 看到这个developer.apple.com/library/ios/documentation/iphone/conceptual/…,告诉我你说的是哪个州?以上是关于应用程序在后台时如何更新徽章编号[重复]的主要内容,如果未能解决你的问题,请参考以下文章