オフライン モードでモバイル サファリと連携する Web サイトを開発しています。ホーム画面にブックマークして、そこから読み込むことができます。しかし、ホーム画面から開くと、特定のリンクをクリックするとアプリから飛び出し、モバイル サファリで開きます。
アプリは onclick イベント ハンドラーを<body>
レベルでバインドします。イベント委任を使用して、任意のリンクのクリックをキャッチし、その href (「ヘルプ」または「レビュー」など) を調べ、JavaScript テンプレートを動的に呼び出してページを更新します。イベント ハンドラーはイベント オブジェクトで preventDefault() を呼び出します。一部のリンクではこれが機能し、ページはテンプレート出力で更新されます。ただし、テンプレートの結果を出力する前にローカル データベースにヒットするリンクについては、モバイル サファリでリンクが開かれます。
デスクトップ サファリでは、オフラインのときでもすべてのリンクが機能します。モバイル サファリ固有の何かが起こっています。
一部のリンクがオフラインで機能し、他のリンクが機能しない理由について何か考えはありますか? 問題のリンク URL はいずれもマニフェスト ファイルにリストされていませんが、リンク アクションが防止されているため、リストする必要はありません (すべきではありません)。
* モバイル サファリに読み込まれるリンクをクリックすると、オフラインであっても同じリンクが機能し、データベースからのデータが入力されたテンプレートが適切に機能するようになりました。つまり、ホーム画面から開くとリンクが失敗しますが、モバイル サファリ オフライン内からはリンクが失敗します * データベース ヒットを削除するようにリンクを変更すると (テンプレートにモック データベースの結果を入力することで)、問題が解決し、リンクをクリックできるようになります。ホーム画面からアプリで。