В моем приложении 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
}
}
}