Когда я впервые запускаю свое приложение, симулятор может отображать уведомления, пока приложение находится на переднем плане ,`willPresent notification` не вызывается и локальные уведомления не отображаются, когда приложение находится на переднем плане в iOS 10
Когда я повторно запустить приложение didReceive notification:
(т.е. способа уведомления от прошивки 9) вызывается вместо willPresent notification
(т.е. способа уведомления от прошивки 10) и никаких уведомлений не отображаются в то время как приложение находится на переднем плане. Тем не менее, уведомление отображается, если приложение находится в фоновом режиме.
Ни тот question, ни этот question не смогли решить эту проблему.
я получить разрешение для уведомлений с помощью этого кода:
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]? = [:]) -> Bool {
if #available(iOS 10.0, *) {
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options: [.alert, .sound, .sound]) { (granted, error) in
UNUserNotificationCenter.current().delegate = self
}
}
return true
}
И я реализовал метод уведомления willPresent:
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) completionHandler(UNNotificationPresentationOptions.alert)
}
Вот как я создаю уведомление:
let content = UNMutableNotificationContent()
content.title = title
content.subtitle = subtitle
content.body = message
content.categoryIdentifier = identifier
let trigger = UNTimeIntervalNotificationTrigger(
timeInterval: 10.0,
repeats: false)
let request = UNNotificationRequest(
identifier: "identifier",
content: content,
trigger: trigger
)
UNUserNotificationCenter.current().add(
request, withCompletionHandler: nil)
Задача в двух словах: Как я могу убедиться, что приложение может отображать уведомление, когда приложение находится на переднем плане после первого запуска приложения?
Заранее спасибо.
Это потому, что идентификатор одинаковый для всех уведомлений. убедитесь, что вы добавляете разные идентификаторы для разных уведомлений. Кроме того, почему вы запрашиваете '.sound' два раза в разрешении? – bhakti123