【问题标题】:How to get iCalendar subscriptions to work between multiple browsers/operating systems?如何让 iCalendar 订阅在多个浏览器/操作系统之间工作?
【发布时间】:2012-08-30 21:53:47
【问题描述】:

在我们的服务器上,我们实施了一种为我们的活动获取动态 iCalendar 提要的方法。这通过首先调用呈现 iCalendar 文件的 Coldfusion 脚本来处理,并在设置内容类型为“text/calendar; charset=UTF-8”后返回该脚本。被称为是这样的:http://www.mysite.com/ical.cfm?calendar_id=1

但是,我们注意到这会导致移动设备等设备之间出现问题。iPad 不会“订阅”它,而是导入事件;这不好,因为我们希望这些更新。其他浏览器只是提示下载 ICS 文件,这又会导致人们导入单个文件而不是真正“订阅”事件(我们还使用 Content-Disposition 标头将文件名固定为“.ics”下载为“.cfm”)。

然后我们尝试在链接上使用“webcal://”而不是“http://”。这似乎解决了 iPad 的问题,然后 Firefox 会要求在另一个应用程序中打开链接(我猜有人可以选择他们的日历应用程序)。但是,现在 Chrome 不会做任何事情;我们点击链接,它什么也不做。 Webcal 不是标准的“协议”,所以我可能会遇到问题。

现在,我打开 Wireshark 来检查一个提供 Google iCalendar 文件的数据包(它在任何浏览器和 iPad 上都可以很好地链接),除了一些缓存头和自定义“X”头外,没有什么特别之处,唯一需要注意的是内容类型被设置为我们提供的内容。

所以,我想知道是否有人有一些关于让它在所有浏览器和 iPad/iPhone 上同样工作的建议。难道是链接调用“.cfm”而不是“.ics”的事实正在抛出一些东西吗?如果是这样,我想我们可以实现一个重写规则来解决这个问题......

【问题讨论】:

    标签: coldfusion icalendar webcal


    【解决方案1】:

    在尝试了更多之后,不太确定是否有一种可靠的方法可以让它在多个平台上工作。似乎对于 iPhone 和 iPad 之类的东西,它们需要一个“webcal://”链接才能通过 Apple 的日历应用程序订阅。有些浏览器可以接受这种格式,有些则不行。

    这实际上将涉及创建一个界面,允许人们为他们的设备选择正确的下载,或者使用服务器端请求中的用户代理来定位给定设备/浏览器的适当格式的链接。

    【讨论】:

      猜你喜欢
      • 2018-09-22
      • 2011-09-16
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 1970-01-01
      • 2011-07-20
      相关资源
      最近更新 更多