我最近正在做世博日历。我遇到一个问题,在ANDROID上,每当我创建一个新的日历事件并更改设备的时区时,该事件就会从日历中删除。
这是我的配置:
对于日历:
const newCalendar = {
title: 'Test',
entityType: Calendar.EntityTypes.EVENT,
color: 'red',
sourceId:
Platform.OS === 'ios' &&
calendars.find(
cal =>
(cal.source && cal.source.name === CALENDAR_SOURCE_IOS.DEFAULT) ||
(cal.source && cal.source.name === CALENDAR_SOURCE_IOS.I_CLOUD)
).source.id,
source: Platform.OS === 'android' && {
name: calendars.find(cal => cal.accessLevel === Calendar.CalendarAccessLevel.OWNER).source
.name,
isLocalAccount: true,
},
name: 'Test',
accessLevel: Calendar.CalendarAccessLevel.OWNER,
ownerAccount:
Platform.OS === 'android' &&
calendars.find(cal => cal.accessLevel === Calendar.CalendarAccessLevel.OWNER).ownerAccount,Calendar.CalendarAccessLevel.OWNER).ownerAccount,
allowsModifications: false,
isVisible: true,
}
事件:
const event = {
title: 'test event',
startDate: testStartDate,
endDate: testEndDate,
location: 'Test location',
timeZone: Localization.timezone,
endTimeZone: Localization.timezone,
}
iOS上更改时区的行为是:事件日期在日历中更新。 (这是预期的行为)。
在Android上:在更改设备的时区时,事件将被删除。