【问题标题】:Reset urbanairship badge count重置城市飞艇徽章数量
【发布时间】:2013-11-19 13:45:22
【问题描述】:

问题:

  • 假设我收到 3 条通知。
  • 它在我的应用图标上显示徽章计数 3。
  • 我打开应用程序或单击通知,它会清除徽章 (到目前为止一切顺利)
  • 现在,当我收到新通知时,我的应用程序上显示的徽章计数 图标是 4 而不是 1
  • 这意味着徽章计数未在 Urbanairship 结束时重置

到目前为止我的代码:

-(void)resetBadgeNotifications:(UIApplication *)application using:(NSDictionary *)notificationInfo{
    if( notificationInfo != nil ){
        [[NSNotificationCenter defaultCenter] postNotificationName:@"newNotification" object:notificationInfo];
    }
    application.applicationIconBadgeNumber=1;
    application.applicationIconBadgeNumber=0;
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
    [application cancelAllLocalNotifications];
    [[UAPush shared] setBadgeNumber:1];//set to 1
    [[UAPush shared] resetBadge];//zero badge
}

我从以下三个地方调用这个方法:

didFinishLaunchingWithOptions

didRegisterForRemoteNotificationsWithDeviceToken

applicationDidBecomeActive

在我的函数的最后一行,我显然正在重置 UrbanAirship 上的徽章。但它似乎不起作用。如果我遗漏了什么,有人可以纠正我吗?

【问题讨论】:

  • 我也有同样的问题,请问您找到解决方法了吗?我的解决方法是在通过飞艇推动时始终将徽章设置为 1。

标签: push-notification apple-push-notifications urbanairship.com


【解决方案1】:

我最初的回答是针对 APNS 提供的基本推送通知。 我不知道 UrbanAirship 有一种机制来跟踪每个令牌的徽章编号。 阅读他们的文档,您可能忘记致电:

[[UAPush shared] setAutobadgeEnabled:YES]

如果您的应用程序使用 Urban Airship 的自动徽章功能,请启用 客户端自动徽章跟踪 应用程序:didFinishLaunchingWithOptions:更改徽章之前 价值:

[[UAPush 共享] setAutobadgeEnabled:YES]; [[UAPush 分享] resetBadge];//零徽章

【讨论】:

  • 你的意思是我的服务器应该为所有用户保留未读计数,当用户打开点击通知的应用程序时,我应该重置服务器上的通知,以便下次它再次从 1 发送?
  • 如果是真的,UA 的resetBadge 方法有什么作用?
  • @AdilMalik 我的错。我不知道 UA 上的自动徽章功能。请参阅我的更新答案。
  • 感谢您的调查。但我也在做同样的事情,还是不行。
猜你喜欢
  • 1970-01-01
  • 2015-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多