Как получить календарь по умолчанию в Android, используя Expo SDK Calendar API? - PullRequest
0 голосов
/ 13 января 2020

решено: используется await и переменная для хранения обещания.

Я пытаюсь вставить событие в календарь по умолчанию на устройстве android с использованием response-native и expo SDK. Ранее можно было создать событие, используя метод createEventAsync() с 1-м аргументом как Calendar.DEFAULT , но это больше не поддерживается. Я могу использовать метод getCalendarsAsync(), чтобы получить все каландры, но объект, который я получаю, не имеет смысла. Какой-то код:

async addReservationToCalendar(date) {
    await this.obtainCalendarPermission();
    console.log(Calendar.getCalendarsAsync());
}

Кто-то предложил мне перебрать ответы, чтобы найти календарь с атрибутом isPrimary , установленным в true, но я не вижу, как мне этого добиться. Я уже получил разрешение и получаю следующее обещание в качестве ответа. Promise { "_40": 0, "_55": null, "_65": 0, "_72": null, }.
Что мне нужно сделать, чтобы установить событие календаря на устройстве android с помощью API-интерфейса календаря expo?

Ответы [ 2 ]

1 голос
/ 13 января 2020

Это обещание, поэтому вы можете использовать оператор затем или асин c.

Так Или вы можете сделать

async addReservationToCalendar(date) {
    await this.obtainCalendarPermission();
    let result = await Calendar.getCalendarsAsync();
    console.log(result,'result')
    console.log(Calendar.getCalendarsAsync());
}

или

Calendar.getCalendarsAsync().then(calendars => console.log(calendars,'calenders'))

Надеюсь, это поможет.

1 голос
/ 13 января 2020

Поскольку это обещание, вам нужно сделать вот так

Calendar.getCalendarsAsync().then(calendars => console.log(calendars))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...