Я хочу создать веб-сайт stati c html с функцией загрузки записей календаря, он должен работать в новых браузерах (нет необходимости в IE).
Сначала я попробовал это js lib для создания .ics
файла: https://github.com/nwcell/ics.js - я не смог заставить его работать ...
Затем я попробовал настроенный форк, который я получил, чтобы создать и загрузить файл с: https://github.com/matthiasanderer/icsFormatter
Я тестирую его на Windows 10, и он успешно открылся в MS Outlook
, но потом я заметил, что файл не открылся в Windows календарь приложение:
Ошибка переводит что-то вроде: "The event couldn't be opened. Perhaps the calendar file is damaged."
В Safari на iPhone также возникает ошибка при нажатии на кнопку загрузки:
Ошибка переводит что-то вроде: "Safari can not load this file."
Я проверил сгенерированный файл .ics
с этим инструмент: http://ical-validator.herokuapp.com/validate/, скорректировал код JS, чтобы устранить почти все ошибки - и я не знаю, если это последняя ошибка, от которой я не знаю, как избавиться, важно:
Specifying the charset in the MIME Content-Type is mandatory
Я думал, что тип MIME
не должен быть проблемой, потому что он определен в функции JS -download в этом строка:
window.open("data:text/calendar;charset=utf-8," + escape(calendar));
Мне также интересно, почему загрузка работает нормально в Chrome
, но Firefox
(V.72) загружает файл с двойным окончанием файла в конце: .ics.ics
И я могу sh Я мог дать имя файлу - но единственный способ, которым я нашел это, был для файлов .csv в нижней части этого ответа и он не работал - я думаю, что функция encodeURI
уничтожила мои разрывы строк или что-то в этом роде.
Это содержимое моего сгенерированного. ics file:
BEGIN:VCALENDAR
PRODID:-//test//cal_events/NONSGML v1.0//DE
VERSION:2.0
BEGIN:VEVENT
UID:b1e4da94-1550-453f-bdee-a085a0b14231
CLASS:PUBLIC
DESCRIPTION:This is the description...
DTSTAMP:20200125T084646Z
DTSTART:20200229T190000z
DTEND:20200229T230000z
LOCATION:Deutschland
SUMMARY:Event Title
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR
Похоже этот вопрос похож ...