gpt4 book ai didi

ios - 世博会 - 创建日历缺少源

转载 作者:行者123 更新时间:2023-11-29 13:54:37 24 4
gpt4 key购买 nike

尝试在 iOS 上创建日历时,我得到:

Calendar 'My Calendar' could not be saved: Error Domain=EKErrorDomain 
Code=14 "Calendar has no source" UserInfo=
{NSLocalizedDescription=Calendar has no source}

我的日历配置如下:

 {
"allowsModications": true,
"color": "yellow",
"entityType": "event",
"source": {
"id": "220e5c20-eee3-406a-b1e0-cbd59b06ce66",
"name": "workout-scheduler",
"type": "local",
},
"sourceId": "220e5c20-eee3-406a-b1e0-cbd59b06ce66",
"title": "My Calendar",
"type": "local",
}

我的项目正在运行

"expo": "^34.0.0",
"expo-calendar": "~6.0.0"

最佳答案

因此,对于那些好奇的人或那些可能发现自己遇到此类问题的人,您应该知道,虽然 Android 允许使用 iOS 不允许的几乎任何值来定义源。

所以我所做的是,在创建日历时,我首先获取现有日历并选择第一个源类型为 caldav 的日历 - iCloud 使用此标准,因此它将出现在设备。获得该日历后,我会从他那里获取源 ID,并将其设置为我的应用程序日历的源 ID。

let iOsCalendarConfig = {
title: "Workout Events",
color: '#4B968A',
entityType: Calendar.EntityTypes.EVENT,
}

const getEventsCalendars = () => {
return Calendar.getCalendarsAsync(Calendar.EntityTypes.EVENT)
}

export const createCalendar = async (gymConfig) => {
let osConfig;
switch (Platform.OS) {
case "ios":
const calendars = await getEventsCalendars()
const caldavCalendar = calendars.find(calendar => calendar.source.type == "caldav")
osConfig = iOsCalendarConfig;
// Sources can't be made up on iOS. We find the first one of type caldav (most common internet standard)
osConfig.sourceId = caldavCalendar.source.id
break;
case "android":
...
break;
default:

}

return Calendar.createCalendarAsync(osConfig)
}

尽管这可行,但我意识到,例如,我无法像在 Android 上那样在 iOS 上创建本地日历;这让我觉得这个日历主题还有更多需要挖掘的内容。

关于ios - 世博会 - 创建日历缺少源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57338097/

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