[英]How to create an “add to calendar” iCal link (.ics file) from server data and send it back to my webApp?
[英]React Native: How to parse an ics / ical file
解析ical / ics文件的最佳方法是什么? 我將其全部放在一個字符串中,但找不到與RN兼容的軟件包或庫。 所有常規的JS或Node拋出有關FS包丟失的錯誤。 我正在從URL中讀取它,並將其全部存儲在內存中,所以我什至不需要文件系統訪問。
我找不到任何這樣的模塊。 這是我用來解決此問題的基本代碼:
var request = new XMLHttpRequest();
request.open(
"GET",
"https://calendar.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics",
true
);
request.send(null);
request.onreadystatechange = function() {
if (request.readyState === 4 && request.status === 200) {
var type = request.getResponseHeader("Content-Type");
if (type.indexOf("text") !== 1) {
var lines = request.responseText.split("\n");
var events = {}
var events_i = 0;
for (i = 0; i < lines.length; i++) {
if (lines[i].includes('DTSTART')) {
var date = lines[i].split(":");
events[events_i] = {date: date[1]};
}
else if (lines[i].includes('SUMMARY')) {
var title = lines[i].split(":");
events[events_i]["title"] = title[1];
}
else if (lines[i].includes('END:VEVENT')) {
events_i++;
}
}
console.log(events);
}
}
};
任何想要在2019年以上找到該問題的答案的人,我已經編寫了一個npm模塊來解決此問題! 你可以在這里找到它! ( https://github.com/Christop406/ical-parser )。
或者,如果您很懶,只需運行npm i cal-parser
( 不是 ical-parser
)。
您可以像這樣使用它:
const ical = require('cal-parser');
var parsedCal = ical.parseString(MY_ICAL_STRING);
console.log(parsedCal.calendarData); // for calendar metadata
console.log(parsedCal.events); // for calendar events
解析愉快!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.