我写了一个简单的php脚本来动态编写.ics文件。提交HTML表单时会调用该脚本:
<form id="m1-remind-form" action="/php/make_ics.php" method="get">
在桌面上它运行正常。下载文件,当用户打开文件时,会添加日历事件。在具有移动Safari的iOS设备上没有任何反应。即使我只是直接链接到有效的ics文件,也没有任何反应。 mime类型的文本/日历已添加到服务器中。 php给出了这些标题:
header("Cache-Control: private");
header("Content-Type: text/calendar; charset=utf-8");
header("Content-Disposition: attachment; filename=".$filename .".ics");
我已经搞乱了其他mime类型和各种标头设置。似乎没什么用。
我找到了一个网站,其中动态创建的ics文件通过移动版Safari下载并打开日历,并且具有我正在寻找的用户体验。见这里:http://m.anderson.ucla.edu/today
他们使用.NET脚本制作ics文件,但这不应该有所作为。
似乎它可能是服务器(IIS)问题,但我们不知道它可能是什么。有什么建议?我在这里不知所措。
答案 0 :(得分:0)
表单按钮未在移动版Safari上提交。它在桌面上提交了。不得不用javascript强制在手机上提交。
btn.addEventListener('touchend', function(){form.submit()});
不确定原因?
答案 1 :(得分:0)
使用此:
header("Content-Disposition: inline; filename=".$filename .".ics");