WatchKit getNotificationSettings возвращает авторизациюСтатус не определен даже после авторизации на телефоне - PullRequest
0 голосов
/ 07 февраля 2020

В моем приложении iOS есть приложение-компаньон для Apple Watch, и оба используют локальные уведомления. После установки приложения на телефон (из TestFlight), запуска приложения для телефона и разрешения уведомлений, когда я затем запускаю приложение на своих часах и вызываю getNotificationSettings, возвращаемое значение authorizationStatus не определено. Если я использую приложение Watch на своем телефоне и выключу «Показать приложение на Apple Watch», а затем снова включу его, вызов getNotificationSettings на часах правильно вернет авторизованный статус авторизации. Мне нужно, чтобы часы знали, авторизованы ли уведомления, чтобы включить / отключить функциональность (без запроса пользователя отключить и снова включить «Показать приложение на Apple Watch»). Кто-нибудь может предложить подход к получению правильного значения?

Это код из приложения часов:

let notificationCenter = UNUserNotificationCenter.current()

override func awake(withContext context: Any?) {
    super.awake(withContext: context)

    notificationCenter.delegate = self
}

func updateNotificationsStatus() {
    notificationCenter.getNotificationSettings { settings in
        switch settings.authorizationStatus {
        case .authorized:
            //do something
            break
        case .notDetermined:
            //do something
            break
        case .denied:
            //do something
            break
        default:
            //do nothing
            break
        }
    }
}
...