Предоставление разрешения для календаря без отображения ios builtIn alertView

Я использую этот метод, чтобы спросить пользователя о разрешении календаря requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) но я хочу, чтобы пользователь нажимал на Button названный как GrantPermissionто разрешение должно быть предоставлено без указания alertView который встроен в IOS, есть ли способ сделать это?

Я хочу сделать это, потому что, когда пользователь нажимает на Dont Allow тогда я покажу alertView Это говорит о том, что пользователь должен вручную включить разрешение в настройках, а когда пользователь вручную включает это разрешение, приложение вылетает.

1 ответ

Решение

Невозможно предоставить разрешение без отображения собственного представления предупреждений, поскольку оно обеспечивает дополнительный уровень безопасности (без этого разработчики просто программно предоставили бы разрешение всем).

Если вы хотите избежать попадания в ситуацию, когда пользователю необходимо вручную предоставить разрешение из приложения "Настройки", вы можете отобразить предупреждение "предварительное разрешение", в котором вы предлагаете пользователю некоторую информацию о том, почему он может захотеть его разрешить, а затем фактически запрашивая разрешение у системы, которая, в свою очередь, отображает встроенное оповещение.

FWIW Это не моя идея, и при этом это не что-то новое. В этой статье TechCrunch подробно рассказывается о UX, запрашивающем разрешения для iOS.

Обратите внимание, что вы все равно можете оказаться в ситуации, когда пользователю необходимо вручную предоставить разрешение - если они "принимают" ваше предупреждение, но отклоняют фактическое системное предупреждение. В этом случае вам необходимо выяснить причину сбоя вашего приложения, возможно, напишите еще один вопрос по этому поводу.

Другие вопросы по тегам