gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:01:25 27 4
gpt4 key购买 nike

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

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

关于解决此问题的任何提示或建议?

最佳答案

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

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

在我们启动 GMail 和 Google Calendars 之前效果很好……又是另一场战斗。如果有人对此有意见,非常感谢。看来我们必须通过 Google Cal API 并在那里 Hook 。

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);
}
}

关于ios - 如何判断 iOS 用户在最初启用 iCloud 日历后是否禁用了它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29808622/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com