世博会 - 创建日历缺少源

Posted

技术标签:

【中文标题】世博会 - 创建日历缺少源【英文标题】:Expo - creating calendar is missing source 【发布时间】:2019-08-03 11:56:59 【问题描述】:

尝试在 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"

【问题讨论】:

您是否在物理设备上使用此测试? 是的,尝试过,物理设备和模拟器。两者的结果相同 您是在 Expo 的形式上发布的吗?我想在那里问会很快。 我加入了expo slack频道,看看能不能得到一些见解 它会帮助你,因为管理世博会的经理有一个答案。 【参考方案1】:

因此,对于好奇的人或可能会发现自己遇到此类问题的人,您应该知道,虽然 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 上创建本地日历;这让我觉得这个日历主题还有更多需要挖掘。

【讨论】:

你有没有想过这个问题?我正在尝试创建一个日历并正在做与此相同的事情,但即使使用正确的 sourceID,我仍然收到我没有来源的错误。

以上是关于世博会 - 创建日历缺少源的主要内容,如果未能解决你的问题,请参考以下文章

搬迁世博入口点后的空白屏幕

世博会推送通知在构建后不起作用

没有这样的表-世博会中的 SQLite 反应原生项目

世博会:世博会开始的默认浏览器

世博会:世博构建和世博上传有啥区别

求一篇关于世博会的英语作文,复制粘贴的就算了,希望再加上翻译~