明確にするために、Web アプリはキャッシュしており、モバイル Safari でオフラインで正常に動作しています。
問題は、iOS 6.0.1 を実行している iPhone 4s と iPad 2 のホーム画面に追加された場合です。オフラインでは機能せず、インターネットに接続するためのネットワーク エラーが発生します。つまり、「MYWEBAPP を開けません。インターネットに接続されていないため、MYWEBAPP を開けませんでした」などです。
これを数時間デバッグしてきましたが、解決策が見つからないようです。コンソールにエラーは表示されず、Jonathan Stark のデバッグ コードを実行しています。
デスクトップの Safari、Chrome、および Firefox の開発者ツールで、オンラインとオフラインの両方でアプリをテストしました。Safari のデバイスを使用した Web Inspector と同様に。結果はiPhoneでもiPadでも同じです。どちらも Web アプリをキャッシュし、モバイル Safari で動作しますが、ホーム画面に追加された場合は動作しません。オフラインでもオンラインでもエラーはありません。
私の知る限り、ベストプラクティスを使用しています:
追加された HTML ヘッダー:
<html manifest="photo.appcache">
また、マニフェスト ファイルに cache.manifest と offline.manifest などの異なる名前を使用して実験しましたが、違いがあることを読んでいますが、私のテストでは、拡張子が .マニフェストまたは .appcache に保存され、.htaccess ファイルで適切に提供されます。
正しい MIME タイプを追加しました:
AddType text/cache-manifest appcache manifest
私も試しました:
AddType text/cache.manifest manifest
、、AddType text/cache.manifest .manifest manifest
AddType text/cache-manifest .manifest
これがうまくいっ
AddType text/cache.manifest
たとは思いませんが、覚えていません。ほとんどの場合、それは問題ではなく、私は固執しました:AddType text/cache-manifest appcache マニフェスト
それが HTML5 Mobile Boilerplate にあったものです。
追加した:
通信網: *
appcache ファイルに。これにより、すべてをダウンロードできるだけでなく、すべてのリンクを機能させることができると思います。
- 私はこの行を削除しようとしました:
<meta name="apple-mobile-web-app-capable" content="yes">
SO でここを読んだので、私のものと同様の問題が解決されましたが、私のテストでは機能しないことを確認できます。この行を削除するか、ホーム画面のアイコンを押すときにコンテンツを「いいえ」に設定すると、Mobile Safari にリダイレクトされ、フルスクリーンで開かれなくなります。
iOS 6 のバグ (私は実際に iOS 6.0.1 を使用しています) にかなり絞り込みました。これは、ブラウザーの Web アプリとホーム画面に追加されたアプリのデータが分離されていることがわかっているためです。 . この問題をここに投稿して、他の開発者が同じ問題に遭遇したかどうかを確認します。