从同一页面下载第二个.ICS文件将打开先前保存的文件



我有一个页面,其中包括"添加到日历" 链接。这些下载iCalendar(.ICS)事件。这是针对旅行情况,因此可以有两个事件(出站和返回旅程),每个事件都作为单独的下载。

如果我单击一个(例如出站)下载并提供打开。我这样做,然后单击"保存到日历",然后将其添加到我的日历中。到目前为止,一切都很好。然后,我单击另一个(返回),然后下载,但是当我打开它时,它将打开已经保存的事件的出站事件,而不是返回的新事件。因此,错误的数据和我没有保存的选择(因为事件已经存在)。

这两者都在iPhone(Safari浏览器)和Android手机(Chrome)上发生。桌面上没有问题。关闭日历应用程序无济于事。

仅当我将第一个事件添加到日历中时才发生 - 如果我只是返回而不保存的情况,那没有问题。无论是尝试出站还是首先返回,添加到日历中的第一个接管都没关系!如果我从日历中删除它,然后可以添加另一个。

每个都有一个文件名,其中包括路由(因此出站和返回具有不同的文件名)。我还确保始终使用新副本。完整的标题(在回声之前,ICS文件和死亡的内容)为:

header( 'Cache-Control: no-cache, must-revalidate', true ); // HTTP/1.1
header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT', true ); // Date in the past
header( 'Content-Type: text/calendar; charset=utf-8', true );
header( 'Content-Disposition: attachment; filename="' . $filename . '"', true );
header( 'HTTP/1.0 200 OK', true, 200 );

目前我有点不合时间。

好。事实证明,手机是正确的,外观是错误的。后端是将电子邮件地址作为UID重新使用,因此所有事件都具有相同的UID ...

我已经修复了后端代码,以便现在使用更明智的UID。它起作用

最新更新