“getDeliveredNotificationsWithCompletionHandler”使通知托盘计数为零:iOS12.1

Posted

技术标签:

【中文标题】“getDeliveredNotificationsWithCompletionHandler”使通知托盘计数为零:iOS12.1【英文标题】:"getDeliveredNotificationsWithCompletionHandler" gives notification tray count zero : iOS12.1 【发布时间】:2018-11-28 17:43:45 【问题描述】:

按照以下步骤操作

    打开应用 使用锁定按钮锁定 iPad 然后从后端发送通知——设备在通知托盘中收到通知 然后使用锁定按钮解锁 iPad 该应用程序仍处于打开状态,因为我们尚未按下 Home 按钮。 现在当我们执行“getDeliveredNotificationsWithCompletionHandler”时会发出通知 托盘计数为零 - 它应该给出 1 个通知的计数 已收到。 [当我将应用程序置于后台然后将其置于前台时,它也没有给我正确的计数]

这是我的代码:

- (void)applicationDidBecomeActive:(UIApplication *)application 

    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;

    [[UNUserNotificationCenter currentNotificationCenter] getDeliveredNotificationsWithCompletionHandler:^(NSArray<UNNotification *> * _Nonnull notifications) 

        NSLog(@"getDeliveredNotificationsWithCompletionHandler count %lu", [notifications count]);

        for (UNNotification* notification in notifications) 
            // do something with object
            [self handlePushNotification:notification.request.content.userInfo];
        

        if(notifications.count) 
            [[UNUserNotificationCenter currentNotificationCenter] removeAllDeliveredNotifications];
        

    ];

【问题讨论】:

【参考方案1】:

此问题存在于服务器端的通知负载中 - 如下所示


    aps =     
        alert =         
            body = "";
            title = "";
        ;
        badge = 1;
    ;


** 但是当我将徽章值设置为“0”时,我从 getDeliveredNotificationsWithCompletionHandler 获得了计数**

  
        aps =     
            alert =         
                body = "";
                title = "";
            ;
            badge = 0;
        ;

    

【讨论】:

以上是关于“getDeliveredNotificationsWithCompletionHandler”使通知托盘计数为零:iOS12.1的主要内容,如果未能解决你的问题,请参考以下文章