2016-10-24 1 views
0

Я хочу определить, когда пользователь когда-либо получал предупреждение, запрашивающее registerUserNotificationSettingsUIUserNotificationSettings.Определение того, был ли вызов `registerUserNotificationSettings` когда-либо выполнен в Swift

В качестве примера при доступе к фотографиям можно определить, был ли запрос на доступ к фотографиям и предоставленному разрешению PHPhotoLibrary.authorizationStatus(). Он возвращает статус .Authorized, .Denied, .Restricted, .NotDetermined. Когда на данный момент не было запросов, возвращается .NotDetermined.

Кроме того, при регистрации уведомления и получения разрешения сделать это с пользователем в первый раз UIApplication.sharedApplication().registerUserNotificationSettings, можно определить типы уведомлений, зарегистрированных, .Badge, .Alert, .Sound, .None. (Примечание: .None может означать как не было никакого запроса или что был запрос, но пользователь избрал для каких-либо уведомлений.)

Вопрос:

Но является есть ли способ определить, был ли вызван registerUserNotificationSettings?? i.e есть ли эквивалент Фотографии .NotDetermined?

ответ

1

При вызове registerUserNotificationSettings, метод UIApplicationDelegate:

func application(_ application: UIApplication, didRegister notificationSettings: UIUserNotificationSettings) 

будет называться давая вам знать результат. Используйте этот метод для сохранения соответствующей информации о состоянии, поэтому при следующем запуске приложения вы знаете, было ли это вызвано до или нет.

+0

Спасибо @rmaddy – user4806509

+0

Относительно примечания, как насчет того, что соответствующая информация о состоянии никогда ранее не сохранялась. Каким будет подход, чтобы определить состояние? – user4806509

+1

Если у вас нет соответствующей информации о состоянии, вы знаете, что 'didRegister' никогда не вызывался, что означает, что' registerUserNotificationSettings' никогда не вызывался, что означает, что теперь вы знаете, что вы должны его назвать. – rmaddy

Смежные вопросы