我编写了一个简单的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下载,并可以很好地打开Calendar,并具有我想要的用户体验。看到这里:http://m.anderson.ucla.edu/today
他们正在使用.NET脚本制作ics文件,但这没有什么区别。
似乎可能是服务器(IIS)问题,但我们不知道这可能是什么。有什么建议么?我在这里茫然。
[表单按钮未在移动Safari上提交。它确实在桌面上提交了。必须使用JavaScript强制在手机上提交。
btn.addEventListener('touchend', function(){form.submit()});
使用此:
header(“ Content-Disposition:inline; filename =”。$ filename。“。ics”);