-1

我正在使用这种方法向用户询问日历权限requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error),但我想要的是当用户单击Button命名为时GrantPermission,应该授予权限而不显示alertView哪个是 IOS 内置的,有没有办法做到这一点?

我想这样做是因为当用户单击时,Dont Allow我会显示一个alertView说用户必须从设置中手动打开权限,而当用户手动打开此权限时,应用程序会崩溃。

4

1 回答 1

0

如果不显示本机警报视图,就无法授予权限,因为它提供了更高级别的安全性(没有它,开发人员只会以编程方式授予所有内容的权限)。

如果您想减轻用户需要从“设置”应用程序手动授予权限的情况,您可以显示“预许可”警报,您可以在其中向用户提供一些关于他们可能想要允许它的原因的信息,然后通过实际请求系统的许可,这将反过来显示内置警报。

FWIW 这不是我的想法,也不是那么新。这篇 TechCrunch 文章详细介绍了在 iOS 上请求权限的 UX。

请注意,您仍然可能会遇到用户需要手动授予权限的情况——如果他们“接受”您的警报但拒绝实际的系统警报。在这种情况下,您需要弄清楚您的应用程序崩溃的原因,也许可以发布另一个关于此的问题。

于 2015-08-18T11:16:31.540 回答