Я пытаюсь реализовать повторяющиеся уведомления в моем приложении watchOS.
Вот код:
let content = UNMutableNotificationContent()
content.title = "tap"
content.sound = UNNotificationSound.default
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: interval, repeats: true)
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: { error in
})
На реальном устройстве все работает правильно: я получаю уведомление каждые время прохождения интервала. Но на симуляторе я вижу странное поведение: все работает нормально, если я нажимаю dismiss
в каждом уведомлении, когда я его получаю. Но если я не нажму dismiss
, я получаю два уведомления, а затем перестаю их получать. Вот как это выглядит:
Я боюсь, что приложение может вести себя так же в реальной жизни при некоторых обстоятельствах, поэтому я хочу исправить это .
Также бывает, что у обоих уведомлений на скриншоте одинаковое время, несмотря на то, что между ними прошло две минуты. Похоже, watchOS не различает guish их, так как у них обоих одинаковый идентификатор. Но неясно, как я должен создать для них несколько идентификаторов, поскольку они фактически являются частью одного повторяющегося уведомления.
Одним из способов исправить это может быть создание нескольких неповторяющихся уведомлений, но, как я читал, существует ограничение в 64 из них, и мне нужно больше.
Как это исправить?