Проблема:
Я не получаю изменения подписки (уведомления) на private
и shared databases
, когда устройство находится в режиме Не беспокоить (даже когда приложениев передний план ).
Примечание:
Когда устройство не находится в режиме Не беспокоить , я получаю изменения подписки по мере их появления.
Код:
Регистрация удаленных уведомлений:
application.registerForRemoteNotifications()
Подписки на базы данных:
let subscription = CKDatabaseSubscription(subscriptionID: "Test")
let notificationInfo = CKNotificationInfo()
notificationInfo.shouldSendContentAvailable = true
subscription.notificationInfo = notificationInfo
Получение уведомления:
func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
let notification = CKNotification(fromRemoteNotificationDictionary: userInfo)
dataService.receivedCloudKitNotification(notification,
completionBlock: completionHandler)
}
Поскольку я не использую звук / значок / предупреждение / carplay (UNAuthorizationOptions
), я выбрал вышеупомянутый метод.
Мое предположение:
- Я предполагал, что Не беспокоить будет применимо только для всего, что будет предупреждать пользователя визуально / или с помощью звука.
- Я предполагал, что тихие уведомления предназначены для изменения данных и не будут затронуты этим.(Точно так же, как они не требуют никакого разрешения)
Вопросы:
- Я пропускаю какие-либо шаги для вышеупомянутой проблемы?
- Надругой сценарий, когда приложение не в режиме Не беспокоить , но Обновление фона отключено для приложения. Я не получаю уведомления об изменениях подписки, хотя приложениенаходится на переднем плане.