EKEventStore requestAccess() не отображает приглашение пользователя в iOS 9IOS

Программируем под IOS
Ответить
Anonymous
 EKEventStore requestAccess() не отображает приглашение пользователя в iOS 9

Сообщение Anonymous »


Я столкнулся со странным случаем при запросе доступа к Календарю в iOS 9. Логика работает нормально на всех устройствах iOS 10.

В нашем случае мы добавили кнопку на панель инструментов, которую пользователь нажимает, чтобы добавить событие в свой календарь.

Поэтому мы не проверяем разрешение на доступ к календарю до тех пор, пока пользователь впервые не нажмет кнопку «Добавить в календарь». Вот так:

@IBAction func addToCalendarPressed(_ sender: UIBarButtonItem) { eventStore.requestAccess(to: .event, завершение: { (предоставлено, ошибка) в if (предоставлено) && (ошибка == ноль) { // Представляем EKEventEditViewController } еще { // Делаем что-то еще (показываем предупреждение) } }) } В iOS 10 приложение отображает запрос на доступ к Календарю, как и следовало ожидать. В iOS 9.x приглашение не отображается, обработчик завершения срабатывает немедленно, а предоставленное значение возвращает false.

Хуже того, несмотря на то, что проверка «Разрешения Календарю», кажется, завершена, вы не можете зайти в «Настройки» и вручную включить доступ к Календарю. Что касается устройства, приложение не проверяло разрешения, поэтому оно никогда не отображается в разделе «Настройки» > «Конфиденциальность» > «Календарь».

Я пытался переместить проверку в viewWillAppear или viewDidLoad вместо того, чтобы ждать, пока пользователь нажмет кнопку, но это все равно не работает. Я извлек несколько примеров приложений с проверкой событий, и они работают в iOS 9. Я просто не смог понять, почему в этом случае приглашение не работает.

Приложение также проверяет местоположение (но не на этом экране), и в iOS 9 оно работает корректно.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»