重置 iOS 应用徽章

Posted

技术标签:

【中文标题】重置 iOS 应用徽章【英文标题】:Reset iOS app badge 【发布时间】:2014-06-14 11:31:53 【问题描述】:

您好,我目前正在开发一个使用推送通知的应用程序。我已经成功地让它与 Parse 一起工作,并且我的应用程序正在接收通知。我的问题不是当我打开应用程序时如何重置徽章,因为我已经使用这段代码了。

- (void)applicationDidBecomeActive:(UIApplication *)application


[UIApplication sharedApplication].applicationIconBadgeNumber = 0;



- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

// Store the deviceToken in the current installation and save it to   Parse.
PFInstallation *currentInstallation = [PFInstallation currentInstallation];
[currentInstallation setDeviceTokenFromData:deviceToken];
[currentInstallation saveInBackground];


- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo 
[PFPush handlePush:userInfo];

该代码从应用程序中删除了徽章,但是当我发送另一个通知时,数字现在是 2 而不是 1。我该如何解决这个问题?

【问题讨论】:

请在通知中输入设置徽章值的代码。 好的,这是通过解析完成的,但这是我认为的代码。 添加的代码有问题 有没有类似[UIApplication sharedApplication].applicationIconBadgeNumber=setting badge value的地方代码 谢谢,但 Nitin Gohel 的回答奏效了! 【参考方案1】:

[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 在解析中没有帮助清除徽章。我刚刚阅读了 Parse Push notification Guide Documentation 和文档说。

徽章: ios 应用图标徽章的当前值。在 PFInstallation 上更改此值将更新应用程序图标上的徽章值。更改应保存到服务器,以便将来用于徽章增量推送通知。

徽章:(仅限 iOS)应用图标右上角指示的值。这可以设置为一个值或 Increment,以便将当前值增加 1。

清除徽章您需要执行以下代码:

- (void)applicationDidBecomeActive:(UIApplication *)application 
  PFInstallation *currentInstallation = [PFInstallation currentInstallation];
  if (currentInstallation.badge != 0) 
    currentInstallation.badge = 0;
    [currentInstallation saveEventually];
  
  // ...

【讨论】:

我建议使用 saveInBackground 而不是 saveEventually。 我正在构建一个 rect 本机应用程序,即使我使用此代码它也不起作用。有什么建议吗?【参考方案2】:

对于正在寻找如何在 swift 中重置徽章的任何人,这里是 swift 版本@nitin 的答案。

func applicationDidBecomeActive(application: UIApplication) 
    var current: PFInstallation = PFInstallation.currentInstallation()
    if (current.badge != 0) 
        current.badge = 0
        current.saveEventually()
    

【讨论】:

以上是关于重置 iOS 应用徽章的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 上重置通知徽章的问题 - Swift [重复]

如何重置徽章应用图标编号?

如何重置目标c中的通知徽章编号?

CloudKit 不会将我的徽章计数重置为 0

Parse Push - 徽章管理

Expo - 实施通知设置应用程序图标徽章编号