我使用这种方法向用户询问日历权限requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error)
,但我想要的是,当用户单击名为GrantPermission
的Button
时,应该授予权限而不显示IOS内置的alertView
,是否有办法做到这一点?
我想这样做,因为当用户点击Dont Allow
,然后我显示一个alertView
,它说用户必须手动打开设置的权限,当用户手动打开这个权限,然后应用程序崩溃。
如果不显示本地警报视图,就无法授予权限,因为它提供了一个额外的安全级别(如果没有它,开发人员将只是通过编程向所有内容授予权限)。
如果你想避免用户需要手动从设置应用程序授予权限的情况,你可以显示一个"预许可"警报,在那里你向用户提供一些信息,告诉他们为什么他们可能想要允许它,然后实际向系统请求许可,这将反过来显示内置警报。
这不是我的主意,也不是什么新鲜事。这篇TechCrunch文章详细介绍了iOS上请求权限的用户体验。请注意,如果用户"接受"您的警报,但拒绝实际的系统警报,您可能仍然会遇到用户需要手动授予权限的情况。在这种情况下,你需要弄清楚为什么你的应用会崩溃,也许发布另一个问题。