如何判断 iOS 用户在最初启用 iCloud 日历后是否禁用了它

问题描述 投票:0回答:2

我们的问题: iOS 用户启动我们的应用程序并通过 iCloud 启用日历集成(他们已选中“设置”>“iCloud”>“日历”) 我们的应用程序为他们填充新的 iCloud 日历。

稍后,如果用户通过“设置”应用程序禁用了 iCloud 日历,并返回到我们的应用程序,我们的应用程序无法知道它已被禁用。任何查找日历的检查仍然显示 iCloud 日历(即使它已在“设置”中打开)

关于解决这个问题有什么建议或建议吗?

ios calendar icloud
2个回答
3
投票

经过一番查找,终于找到了解决方案。它没有得到明确的回答,但在其他一些相关的问题上终于找到了一种方法来检测 iCloud 日历是否关闭(即使 iCloud 已打开)

逻辑是,检查并存储本地日历源,然后检查 iCloud 日历。如果我们检测到 iCloud,请实际检查 iCloud 中是否有日历(以检测 iCloud Cals 是否关闭),如果 iCloud Cals 关闭,请改用本地 cal。

工作得很好,直到我们推出 GMail 和 Google 日历......另一天的另一场战斗。如果有人对此有意见,我们将不胜感激。看来我们必须通过 Google Cal API 并在那里挂钩。

EKSource *localCalSource;

self.calendarSource = nil;
for (EKSource *source in eventStore.sources) 
{
    if (self.calendarSource == nil && source.sourceType == EKSourceTypeLocal) 
    {
        self.calendarSource = source;
        localCalSource = self.calendarSource;
        TLog([self isLocalLoggingOn], "Found local cal source!");
    }

    // if iCloud is enabled, grab that source and return it
    if (source.sourceType == EKSourceTypeCalDAV && [[source.title lowercaseString] isEqualToString:@"icloud"])
    {

    if([source calendarsForEntityType:EKEntityTypeEvent].count>0)
    {     
    //Check to see if Calendar is enabled on iCloud
        self.calendarSource = source;     
    }else{      
    //Calendar is Disabled use LOCAL
            self.calendarSource = localCalSource;   
    }
        break;
        TLog([self isLocalLoggingOn], @"Found %@", source.title);
    }
}

0
投票

请在 Instagram 上收件箱 nyx_cybersleuth,她在黑客和恢复方面值得信赖,道德良好......我在这里推荐她,因为我喜欢她的服务......在黑客和恢复方面超级聪明......

© www.soinside.com 2019 - 2024. All rights reserved.