Подписки на базы данных - режим "Не беспокоить"
Проблема:
Я не получаю изменения подписки (уведомления) на 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
), Я выбрал вышеупомянутый метод.
Мое предположение:
- Я предполагал, что функция "Не беспокоить" будет применима только для всего, что предупредит пользователя визуально / или с помощью звука.
- Я предполагал, что тихие уведомления предназначены для изменений данных и не будут затронуты этим. (Так же, как они не требуют никакого разрешения)
Вопросы:
- Я пропускаю какие-либо шаги для вышеупомянутой проблемы?
- В другом сценарии, когда приложение не находится в режиме " Не беспокоить ", но фоновое обновление отключено для приложения, я не получаю уведомления об изменениях подписки, хотя приложение находится на переднем плане.