タブレット向けに最適化されたウェブサイトを持っています。ページに戻るためのリンクを表示し、JavaScript 関数を呼び出しますwindow.history.back()
。iPad の Safari ブラウザーでは、このリンクは、サーバーに別の要求を行うのではなく、キャッシュされたページを履歴から読み込むことによって、必要に応じて機能します。ただし、単純なネイティブ アプリで UIWebView を介して同じサイトを開くと、同じリンクを使用して戻るたびにサーバーへの要求が発生します。
次の方法でこれを修正できることがわかりました。
- HTTP 応答ヘッダーの削除
Pragma: no-cache
- Cache-Control ヘッダーを「max-age=900」に設定 (15 分)
ただし、これらのサーバー側の変更は UIWebView にのみ必要であり、Safari や Chrome などの実際のブラウザーには必要ないようです。場合によっては、ネイティブ アプリの開発者は、呼び出しているサーバーを制限したり、まったく制御したりできません。したがって、UIWebView のこの動作をクライアント側で制御して、モバイル Safari がこの目的で行うように動作させることが望ましいと思われます。どんな提案でも大歓迎です!
私のテストのほとんどは、iOS バージョン 6.1.3 を搭載した iPad 2.0 で行われたことに注意してください。