Если ваше приложение открыто, операционная система не будет показывать баннер или воспроизводить звук самостоятельно. Вместо этого вы получите уведомление об уведомлении в своем AppDelegate.
Если вы настроите таргетинг на iOS 10 или выше, вы можете использовать UNUserNotificationCenter
, и это позволит вам представить уведомление, даже если ваше приложение открыто. Ниже приведен пример:
В вашем NUserNotificationCenterDelegate
объекте передайте .alert
, .badge
или .sound
в блок завершения метода willPresent notification
:
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
{
completionHandler([.alert, .badge, .sound])
}
Хотя будьте очень осторожны с этим подходом. Пользователи могут легко запретить вашему приложению показывать какие-либо уведомления. Если это так, то приведенный выше метод приведет к тому, что пользователю ничего не будет показано.
Возможно, будет лучше представить все уведомления самостоятельно, если ваше приложение открыто.