Javascript 打开自定义创建的.ics文件时,Iphone中safari的奇怪行为
我正在用javascript创建自定义的.ics文件。当我尝试在桌面上打开它时,效果很好,但当我在Iphone上用safari打开它时,它会有一种奇怪的行为,它会打开一个新屏幕将事件添加到日历中,但它会立即关闭。 见视频: 代码如下: HTML: 我正在使用图书馆: :从自定义数据生成.ics文件。还支持谷歌日历、雅虎日历、Outlook日历 escape()现在不推荐使用,您应该改用encodeURI() iCal场景:Javascript 打开自定义创建的.ics文件时,Iphone中safari的奇怪行为,javascript,jquery,html,icalendar,Javascript,Jquery,Html,Icalendar,我正在用javascript创建自定义的.ics文件。当我尝试在桌面上打开它时,效果很好,但当我在Iphone上用safari打开它时,它会有一种奇怪的行为,它会打开一个新屏幕将事件添加到日历中,但它会立即关闭。 见视频: 代码如下: HTML: 我正在使用图书馆: :从自定义数据生成.ics文件。还支持谷歌日历、雅虎日历、Outlook日历 escape()现在不推荐使用,您应该改用encodeURI() iCal场景: 对于大型设备浏览器,我下载正在使用的.ics文件: const
- 对于大型设备浏览器,我下载正在使用的.ics文件:
const icalendar = new ICalendar(this.config); icalendar.download();
- 对于我正在使用的移动设备浏览器
const icalendar = new ICalendar(this.config); window.open('data:text/calendar;charset=utf8,' + encodeURI(icalendar.render()));
icalendar.render()生成.ics文件,它看起来是这样的:您是否尝试使用第三方工具生成.ics文件,并比较它是否与您的相同?您是否需要
escape()
?更新:我已经在一个JSFIDLE中测试了您的代码,一直到在BrowserStack上测试iOS7 Safari,它仍然有效。但是,我可以看到,您的ICS字符串在最末尾缺少一个尾随END:VCALENDAR
。如果你加上它,这能解决你的问题吗?@Terry这正是我所做的。我将.ics文件的内容复制粘贴到我的js中。我试着补充你说的话,但仍然不起作用。尽管在多次测试之后,它有时工作得很完美,有时表现得和我发送的视频一样。当我使用你提到的网站并从那里下载ics文件时,它总是有效的,所以我真的不确定我错过了什么here@Terry在你送的小提琴上也有同样的行为。请看:奇怪的是,当我从apps.marudot.com/ical下载文件时,它没有要求我允许日历邀请。
const icalendar = new ICalendar(this.config);
icalendar.download();
const icalendar = new ICalendar(this.config);
window.open('data:text/calendar;charset=utf8,' + encodeURI(icalendar.render()));