我们的问题: iOS 用户启动我们的应用程序并通过 iCloud 启用日历集成(他们已选中“设置”>“iCloud”>“日历”) 我们的应用程序为他们填充新的 iCloud 日历。
稍后,如果用户通过“设置”应用程序禁用了 iCloud 日历,并返回到我们的应用程序,我们的应用程序无法知道它已被禁用。任何查找日历的检查仍然显示 iCloud 日历(即使它已在“设置”中打开)
关于解决这个问题有什么建议或建议吗?
经过一番查找,终于找到了解决方案。它没有得到明确的回答,但在其他一些相关的问题上终于找到了一种方法来检测 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);
}
}
请在 Instagram 上收件箱 nyx_cybersleuth,她在黑客和恢复方面值得信赖,道德良好......我在这里推荐她,因为我喜欢她的服务......在黑客和恢复方面超级聪明......