在我們的服務器上,我們實施了一種方法爲我們的活動獲取動態iCalendar供稿。首先調用一個呈現iCalendar文件的Coldfusion腳本,並在設置「text/calendar; charset = UTF-8」的內容類型後返回該腳本。被調用的東西是這樣的:http://www.mysite.com/ical.cfm?calendar_id=1
如何讓iCalendar訂閱在多個瀏覽器/操作系統之間工作?
但是,我們已經注意到這導致諸如移動設備等事物之間的問題。iPad不會「訂閱」這個,而是導入事件;這是不好的,因爲我們希望這些更新。其他瀏覽器只是簡單地提示下載ICS文件,這又會導致人們導入一個文件,而不是真正「訂閱」事件(我們也使用Content-Disposition頭文件來獲取文件名固定爲「.ics」下載爲「.cfm」)。
然後,我們嘗試在鏈接上使用「webcal://」而不是「http://」。這似乎解決了iPad的問題,然後Firefox會要求在另一個應用程序(我猜有人可以選擇他們的日曆應用程序)中打開鏈接。但是,現在Chrome不會做任何事情;我們點擊鏈接,它什麼都不做。 Webcal不是一個標準的「協議」,所以我可以在那裏存在問題。
現在,我打開Wireshark來檢查一個提供Google iCalendar文件的數據包(在任何瀏覽器和iPad中都可以正常連接),除此之外沒有什麼特別之處,除了一些緩存頭文件和自定義「X」頭文件,唯一需要注意的是內容類型被設置爲我們提供的內容。
所以,我想知道是否有人在使所有的瀏覽器和iPad/iPhone的工作方式都一致方面有一些指示。難道說鏈接調用「.cfm」而不是「.ics」的事實正在拋棄一些東西?如果是這樣,我想我們可以實施重新編寫規則來解決這個問題...