问题:

  • 假设我收到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
    }
    

    我从以下三个地方调用此方法:
    didFinishLaunchingWithOptionsdidRegisterForRemoteNotificationsWithDeviceTokenapplicationDidBecomeActive
    在工作的最后一行中,我显然要重置UrbanAirship上的徽章。但这似乎不起作用。如果我缺少任何东西,谁能请我纠正?

    最佳答案

    我最初的答案是针对APNS提供的基本推送通知。
    我不知道UrbanAirship有一种机制可以跟踪每个 token 的徽章编号。
    阅读他们的文档,您可能忘了打电话:
    [[UAPush shared] setAutobadgeEnabled:YES]
    如果您的应用程序使用Urban Airship的自动徽章功能,请启用
    客户端自动徽章跟踪
    application:didFinishLaunchingWithOptions:更改徽章之前
    值:

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

    关于push-notification - 重置Urbanairship徽章计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20073212/

    10-13 04:14