应用程序在后台时如何更新徽章编号[重复]

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/…,告诉我你说的是哪个州?

以上是关于应用程序在后台时如何更新徽章编号[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何更新通知徽章编号?

应用关闭时更新徽章编号

当应用程序在Phonegap(cordova)的后台状态下收到推送通知时增加徽章编号,

如何在 IOS 推送通知中更新徽章编号?

ios - 应用程序关闭时本地通知不更新徽章编号

本地通知触发时更改图标徽章编号