Локальное уведомление UNTimeIntervalNotificationTrigger triggerWithTimeInterval срабатывает каждые 1 минуту, как остановить
Я использую локальные уведомления в своем приложении, чтобы предупредить срочные сообщения пользователю. Что происходит, если пользователь получает push-уведомление, затем создается локальное уведомление, которое запускается через 60 секунд с интервалом в 60 секунд. Это прекрасно работает, и срочное уведомление срабатывает каждые 60 секунд, как и ожидалось.
Звезда местного оповещения срабатывает каждую минуту. Но я хочу остановить их. Можете ли вы предложить мне, как справиться с этим.
На iOS 9 мы вообще не сталкивались с этой проблемой, и уведомление срабатывало многократно даже в одночасье, поэтому я думаю, что это может быть связано с iOS 10?
Код, который я использую для создания уведомления, выглядит следующим образом:
let content = UNMutableNotificationContent()
content.body = NSString.localizedUserNotificationString(forKey: notificationMessage, arguments: nil)
content.badge = 1
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 60, repeats: true)
let request = UNNotificationRequest.init(identifier: "", content: content, trigger: trigger)
center.add(request, withCompletionHandler: {(_ error: Error?) -> Void in
if error == nil {
print("add NotificationRequest succeeded!")
// trigger.timeInterval.
}
})
1 ответ
Я нашел недостающую точку.
let content = UNMutableNotificationContent()
content.title = NSString.localizedUserNotificationString(forKey: "Elon said:", arguments: nil)
content.body = NSString.localizedUserNotificationString(forKey: notificationMessage, arguments: nil)
content.sound = UNNotificationSound.default()
content.badge = UIApplication.shared.applicationIconBadgeNumber + 1 as NSNumber?
content.categoryIdentifier = "com.elonchan.localNotification"
// Deliver the notification in five seconds.
let trigger = UNTimeIntervalNotificationTrigger.init(timeInterval: 60.0, repeats: false)
let request = UNNotificationRequest.init(identifier: "FiveSecond", content: content, trigger: trigger)
// Schedule the notification.
center.add(request, withCompletionHandler: {(_ error: Error?) -> Void in
if error == nil {
print("add NotificationRequest succeeded!")
center.removePendingNotificationRequests(withIdentifiers: ["FiveSecond"])
}
})