Предоставление разрешения для календаря без отображения ios builtIn alertView
Я использую этот метод, чтобы спросить пользователя о разрешении календаря requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error)
но я хочу, чтобы пользователь нажимал на Button
названный как GrantPermission
то разрешение должно быть предоставлено без указания alertView
который встроен в IOS, есть ли способ сделать это?
Я хочу сделать это, потому что, когда пользователь нажимает на Dont Allow
тогда я покажу alertView
Это говорит о том, что пользователь должен вручную включить разрешение в настройках, а когда пользователь вручную включает это разрешение, приложение вылетает.
1 ответ
Невозможно предоставить разрешение без отображения собственного представления предупреждений, поскольку оно обеспечивает дополнительный уровень безопасности (без этого разработчики просто программно предоставили бы разрешение всем).
Если вы хотите избежать попадания в ситуацию, когда пользователю необходимо вручную предоставить разрешение из приложения "Настройки", вы можете отобразить предупреждение "предварительное разрешение", в котором вы предлагаете пользователю некоторую информацию о том, почему он может захотеть его разрешить, а затем фактически запрашивая разрешение у системы, которая, в свою очередь, отображает встроенное оповещение.
FWIW Это не моя идея, и при этом это не что-то новое. В этой статье TechCrunch подробно рассказывается о UX, запрашивающем разрешения для iOS.
Обратите внимание, что вы все равно можете оказаться в ситуации, когда пользователю необходимо вручную предоставить разрешение - если они "принимают" ваше предупреждение, но отклоняют фактическое системное предупреждение. В этом случае вам необходимо выяснить причину сбоя вашего приложения, возможно, напишите еще один вопрос по этому поводу.