2017-08-31 8 views
0

他にも「カレンダーに追加」のページがありますリンク。これらはIcalendar(.ics)イベントをダウンロードします。それは旅行の状況のた​​め、2つのイベント(アウトバウンドとリターンの旅)があり、それぞれ別々のダウンロードとして提供されます。2番目の.icsファイルをダウンロードする同じページから以前に保存したものを開く

1つをクリックすると(アウトバウンドなど)、ダウンロードして開きます。私はそうし、カレンダーに保存をクリックし、カレンダーに追加します。ここまでは順調ですね。それから私はもう1つ(戻る)をクリックしてダウンロードしますが、私がそれを開くと、戻りのための新しいイベントではなく、アウトバウンドのために既に保存されているイベントが開きます。したがって、間違ったデータと私は(イベントが既に存在するので)それを保存するオプションがありません。

これは、iPhone(Safariブラウザ)とAndroid携帯(Chrome)の両方で発生しています。デスクトップ上に問題はありません。カレンダーアプリを閉じることは役に立ちません。

カレンダーに最初のイベントを追加した場合にのみ発生します。保存しないと元に戻っても問題はありません。私がアウトバウンドを試みるか最初に戻るかどうかは関係ありません。カレンダーに追加された最初のものが引き継ぎます!それをカレンダーから削除すると、もう一方を追加することができます。

それぞれには、Content-Dispositionヘッダーに指定されたルートを含むファイル名が含まれています(アウトバウンドとリターンのファイル名が異なります)。また、常に新しいコピーが使用されるようにします。 (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); 

私は、この時点でのアイデアのうち、一種のです。

答えて

0

OK。電話機は正しいと見て間違っていた。バックエンドはUIDとして電子メールアドレスを再利用していたため、すべてのイベントで同じUIDが使用されていました...

私はより合理的なUIDを使用するようにバックエンドコードを修正しました。そしてそれは動作します

+0

あなたはそれを理解して投稿してうれしいです。それはまさに問題が起こったように聞こえました。 – anmari

関連する問題