ios - 确定您的应用程序是否可以在不启动请求的情况下访问日历?

标签 ios objective-c calendar ekeventstore

我正在实现在我的应用程序中从 iOS 日历中添加和删除用户创建的事件的功能。我已经为用户创建事件时访问日历的权限请求编写了代码,并且运行良好。我将事件保存在服务器上,并允许他们稍后删除该事件,当发生这种情况时,我也会从日历中删除该事件。有人可能会在此应用程序之外创建事件,打开应用程序,然后删除从服务器获取的约会。在这种情况下,日历中没有存储任何事件,但它仍然需要查看是否存在事件以尝试删除它,但它失败了,因为在这种情况下我没有征求用户的许可来访问日历。

但是我不想在删除时征求用户的许可,因为用户不知道为什么应用程序想要访问日历,因为他们从来不知道它可以将约会保存到日历中——他们在网站,他们没有理由在那个时间点授予它,因为它无论如何都不会做任何事情。

因此我的问题是,是否可以在不发出请求的情况下确定您的应用程序当前是否可以访问日历,这将导致在未授予权限的情况下向用户显示自动警报 - 请参阅请求代码以下?我只是想搜索事件,仅当我已经有权访问日历时才尝试删除它,如果我没有,我不会尝试删除任何内容。

[eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
    if (granted) {
        //already have access or user tapped on Allow in popup
    }
    ...

最佳答案

您可以使用[EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent]

您需要检查此方法是否返回 EKAuthorizationStatusAuthorized 以断定您的应用当前可以访问给定实体类型的日历。

更多内容可以在类引用中找到here

关于ios - 确定您的应用程序是否可以在不启动请求的情况下访问日历?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24519517/

相关文章:

ios - 在函数外部使用函数中的变量

ios - 理解为什么我需要分派(dispatch)回主线程

objective-c - 如何将 Swift 代码导入 Objective-C?

ios - 通过 PHFetchResult 获取照片非常慢,有很多照片

android - 三星浏览器无法下载 .ics 文件以添加到日历

ios - 在 xcode 中制作一个聊天应用程序

ios - 在 iOS 后台模式下继续从 html5 播放器播放音频

objective-c - 将委托(delegate)作为 id 发送而不是将其设置为属性?

java - 从日历中获取日期

java - 毫秒未出现在 DateFormat.format 输出中