iOS 11:是否可以不显示通知警报(作为横幅),但应将其添加到通知中心?

时间:2019-01-04 06:53:25

标签: ios apple-push-notifications swift4 ios11

当应用程序处于前台状态时,当推送2条或更多条通知时,我们必须仅显示一个警报,其余应显示在通知中心,但在iOS 11中不应该作为横幅被警告?

我已经尝试了以下代码。

public func userNotificationCenter(_ center: UNUserNotificationCenter,
                                       willPresent notification: UNNotification,
                                       withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {

        center.getDeliveredNotifications { (notifications) in
            print("number of notifications delivered so far : \(notifications.count)")
            if notifications.count > 0 {

                print(notification.request.content.userInfo["aps"] as Any)
                // TODO: add to core data
            }
            else {
                completionHandler(UNNotificationPresentationOptions.alert)
            }
        }
        // Presentation type
        //completionHandler(UNNotificationPresentationOptions.alert)
    }

但通知未出现在通知中心。

如何知道iOS 11.0中是否存在通知?

1 个答案:

答案 0 :(得分:0)

如果应用程序位于前台,则不会看到推送通知(在通知中心或应用程序中都不会)。您无法控制向用户显示推送通知的方式和时间(最好这样)。

如果您在应用程序中,则通知将不会保留在通知中心上(所有通知都会自动被视为已查看(或根据需要阅读)。

此外,如果您使用的是模拟器,它将无法正常工作(仅在真实设备上)。