2016-07-23 9 views
1

Метод cloudkit CKContainer requestApplicationPermission() показывает Alert, чтобы спросить пользователя о его разрешении на доступ только один раз на основе документации, и любые будущие вызовы этого метода больше не отображают Alert.Как запросить у пользователя разрешение на обнаружение после того, как они отказали ему в первый раз?

Из документации по адресу: CKContainer.requestApplicationPermission() «В первый раз вы запрашиваете разрешение на любом из устройств пользователя, пользователю будет предложено разрешить или отклонить запрос Когда пользователь дает или отказывает разрешение, последующие запросы на то же самое. разрешение (на тех же или отдельных устройствах) не запрашивает пользователя снова ».

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

+3

Там нет никакого способа, вы должны сообщить пользователю, чтобы изменить их настройки. – jonrsharpe

+0

Привет, Джон, поэтому, если мое приложение просит пользователя изменить свои настройки, как они могут это сделать? Не уверен, что вы говорите, что они могут перейти в настройки iphone и сделать это вручную? Не могли бы вы уточнить? – malena

ответ

-1

Во-первых, проверьте, если пользователь ранее отрицал разрешение с:

CKContainer.statusForApplicationPermission() 

Если статус возвращается в completionHandler является CKApplicationPermissionStatus.Denied, показать UIAlertController с просьбой, если пользователь хочет включить его в настройках.

Если пользователь говорит, что да, вы можете перейти на страницу настроек приложения, как это:

if let settingsURL = NSURL(string: UIApplicationOpenSettingsURLString) { 
    UIApplication.sharedApplication().openURL(settingsURL) 
} 
+0

Если вы используете CloudKit (особенно контейнер разработки), разрешение на доступность поддерживается в CloudKit. В настоящее время нет способа сбросить это с iOS. Вам необходимо сбросить среду разработки и очистить все данные. В следующий раз, когда приложение запустится, пользователь будет запрошен. Apple действительно должна решить эту проблему и разрешить обновление этого ответа пользователем в iOS. – Wizkid