Как запустить liveActivity из удаленного уведомления • Swift ⇐ IOS
-
Anonymous
Как запустить liveActivity из удаленного уведомления • Swift
При реализации виджета активности на экране блокировки в целях отладки у меня была кнопка, которая запускала функцию startLiveActivity(), приложение запускалось нормально, виджет выглядел полностью работоспособным.
Однако мне нужно, чтобы этот виджет активности появлялся всякий раз, когда приложение получает удаленное push-уведомление, когда приложение закрывается или находится в фоновом режиме, но он появляется только тогда, когда приложение находится на переднем плане, что в данном случае не помогает.
р>
class LiveActivityHelper: ObservableObject { статическая переменная общая = LiveActivityHelper() @Published var Activity: Activity? = ноль функция startLiveActivity() { пусть состояние = Attributes.ContentState() активность = попробовать? Activity.request(атрибуты: Attributes(), contentState: состояние, pushType: ноль) } Я попробовал запустить функцию startLiveActivity() из DidReceiveRemoteNotification приложения AppDelegate:
func userNotificationCenter(_ center: UNUserNotificationCenter, ответ DidReceive: UNNotificationResponse) async { LiveActivityHelper.shared.startLiveActivity() } И из расширения уведомлений у меня есть:
class NotificationService: UNNotificationServiceExtension, UNUserNotificationCenterDelegate { var contentHandler: ((UNNotificationContent) -> Void)? вар bestAttemptContent: UNMutableNotificationContent? переопределить func DidReceive (_ запрос: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) { ... LiveActivityHelper.shared.startLiveActivity() Все эти подходы приводят к одному и тому же результату: виджет появляется только при открытии приложения.
В документации Apple описано обновление виджета с помощью удаленного уведомления, но не описано, как запустить его с использованием этого подхода.
При реализации виджета активности на экране блокировки в целях отладки у меня была кнопка, которая запускала функцию startLiveActivity(), приложение запускалось нормально, виджет выглядел полностью работоспособным.
Однако мне нужно, чтобы этот виджет активности появлялся всякий раз, когда приложение получает удаленное push-уведомление, когда приложение закрывается или находится в фоновом режиме, но он появляется только тогда, когда приложение находится на переднем плане, что в данном случае не помогает.
р>
class LiveActivityHelper: ObservableObject { статическая переменная общая = LiveActivityHelper() @Published var Activity: Activity? = ноль функция startLiveActivity() { пусть состояние = Attributes.ContentState() активность = попробовать? Activity.request(атрибуты: Attributes(), contentState: состояние, pushType: ноль) } Я попробовал запустить функцию startLiveActivity() из DidReceiveRemoteNotification приложения AppDelegate:
func userNotificationCenter(_ center: UNUserNotificationCenter, ответ DidReceive: UNNotificationResponse) async { LiveActivityHelper.shared.startLiveActivity() } И из расширения уведомлений у меня есть:
class NotificationService: UNNotificationServiceExtension, UNUserNotificationCenterDelegate { var contentHandler: ((UNNotificationContent) -> Void)? вар bestAttemptContent: UNMutableNotificationContent? переопределить func DidReceive (_ запрос: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) { ... LiveActivityHelper.shared.startLiveActivity() Все эти подходы приводят к одному и тому же результату: виджет появляется только при открытии приложения.
В документации Apple описано обновление виджета с помощью удаленного уведомления, но не описано, как запустить его с использованием этого подхода.
Мобильная версия