代码之家  ›  专栏  ›  技术社区  ›  Zain Khan

无法在Calendar Expo React Native中创建事件

  •  0
  • Zain Khan  · 技术社区  · 4 年前

    错误

    目标日历]

    组件 我刚按下一个按钮就调用了下面的函数

    async addCalendarEvent(date) {
            const startDate = new Date(date);
            const setting = new Date(date);
            const mergeDate = setting.setHours(setting.getHours() + 2);
            const endDate = new Date(mergeDate);
            console.log('starting date ==> ', startDate);
            console.log('end date ==> ', endDate);
            const calendarPermission = await Permissions.askAsync(Permissions.CALENDAR);
            if (calendarPermission.status === 'granted') {
                const eventId = await Calendar.createEventAsync(Calendar.DEFAULT, {
                    title: 'Con Fusion Table Reservation',
                    startDate: startDate,
                    endDate: endDate,
                    timeZone: 'Asia/Karachi'
                }).then((res) => {
                    console.log('res ==> ', res)
                }).catch(err => console.log('error ==> ', err))
                console.log('event ==> ', eventId);
                // const eventId = await Calendar.createEventAsync(Calendar.DEFAULT, {
    
    
                //   });
            } else {
                console.log('permission not granted!')
            }
        }
    
    0 回复  |  直到 4 年前
        1
  •  0
  •   Nouveau    4 年前

    Calendar :已删除默认常量。 因此,如果你想创建一个事件,你需要提供一个有效的日历id。 以下是在日历中创建事件的示例代码:

    import * as Permissions from 'expo-permissions';
    import * as Calendar from 'expo-calendar';
    

    现在询问用户权限并创建事件:

    async obtainCalendarPermission(){
          const { status } = await Permissions.askAsync(Permissions.CALENDAR);
        if (status === 'granted') {
            console.log('Permission Granted')  
             }
    }
    
    async addReservationToCalendar(date) {
        await this.obtainCalendarPermission();
        
        const caleve = await Calendar.createEventAsync("1",
            {title:'Con Fusion Table Reservation',
            startDate: new Date(Date.parse(date)),
            endDate: new Date(Date.parse(date) + 2 * 60 * 60 * 1000),
            timeZone: 'Asia/Hong_Kong',
            location: '121, Clear Water Bay Road, Clear Water Bay, Kowloon, Hong Kong'})
        Calendar.openEventInCalendar(caleve)
    }
    

    P、 你现在可以完成作业了。