Я создаю приложения iOS + watchOS, которые должны уведомлять пользователей с обновленной информацией во всех возможных комбинациях состояний iOS и Watch: когда и iOS, и watchOS работают на переднем плане, когда они оба работают в фоновом режиме, и когда один или другой находится в фоновом режиме.
Я успешно обрабатываю push-уведомления для трех из этих четырех ситуаций. Я застрял, когда приложение для часов открыто на переднем плане, но приложение iOS находится в фоновом режиме. Я не могу найти никакого метода для контроллера уведомлений часов, его ExtensionDelegate или для iOS AppDelegate, который срабатывает, когда в этой ситуации отправляется удаленное уведомление.
В iOS AppDelegate это срабатывает, когда уведомление отправляется, когда приложение iOS находится на переднем плане, а приложение часов находится в любом состоянии:
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
В WatchKit Extension NotificationController это срабатывает, когда уведомление отправляется, когда iOS и приложение для часов работают в фоновом режиме:
override func didReceive(_ notification: UNNotification, withCompletion completionHandler: @escaping (WKUserNotificationInterfaceType) -> Swift.Void) { ... }
Тем не менее, если приложение для часов находится на переднем плане, а приложение для iOS - в фоновом режиме при нажатии уведомления, баннер с уведомлением появляется на iPhone (даже когда экран заблокирован), и я обнаружил нет возможности справиться с этим и обновить часы, если они не находятся в фоновом режиме в этот момент.
Любые идеи?