我正在实现从我的应用程序中添加和删除iOS日历中用户创建的事件的功能.我已经为用户创建活动时编写了访问日历的权限请求,并且它运行良好.我将事件保存在服务器上,我允许他们稍后删除该事件,当发生这种情况时,我也会从日历中删除该事件.有人可以在此应用程序之外创建事件,打开应用程序,然后删除从服务器获取的约会.在这种情况下,日历中没有事件存储,但它仍然需要查看是否存在尝试删除它的事件,并且它失败了,因为在这种情况下我没有要求用户允许访问日历.
但是我不想在删除时要求用户获得权限,因为用户不知道应用程序为什么要访问日历,因为他们从未知道它可以将约会保存到日历 – 他们在网站上创建了它,并且他们没有理由在那个时候批准它,因为它无论如何都不会做任何事情.
因此,我的问题是,是否可以确定您的应用程序当前是否可以访问日历而不提出请求,这将导致在未授予权限的情况下向用户显示自动警报 – 请参阅下面的请求代码?我只是想搜索事件,试图删除它只有我已经有权访问日历,如果我没有,我不会尝试删除任何东西.
[eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted,NSError *error) { if (granted) { //already have access or user tapped on Allow in popup } ...