私は、HTML5マニフェストを使用して、iOS上でいくつかのWebアプリをオフラインで動作させるために多くの作業を行ってきました。私は他の誰もが抱えている典型的な問題に遭遇し、それらを修正しました。iPhone4のデスクトップにWebアプリを保存する場合を除いて、すべてが正常に機能しているようです。
これを行って機内モードを有効にすると、アプリにアクセスしようとすると次のアラートが表示されますホーム画面から: "インターネットに接続されていないため、アプリ名を開くことができませんでした。」アプリへのアクセスSafariブラウザ経由オフラインでも正常に動作します。
これが私の側のエラーなのか、それとも回避策のわずかな可能性なのかを誰かが知っている場合は、教えてください。
新しいFinancialTimes Webアプリをダウンロードしても(広範なlocalStorageサポートで非常によくできています)、オフラインでアクセスするとエラーが発生しますホーム画面から。
技術仕様: iOS4.3.3でiPhone4を実行しています(ただし、4.3.2でも問題が発生しました)
コメント(特にRowanのもの)を読んだ後、私はさらにテストを実行し、答えを見つけました:
いいえ、Appleはホーム画面に保存されたWebアプリのHTML5オフライン機能を無効にしませんでした。ほとんどの場合、機能します。機能しないバグがあります。機能しません。マニフェストの設定と関係があるようです(おそらく、ある時点で悪いマニフェストまたは不完全なマニフェストをダウンロードした場合を除きます)。それがどれほど普及しているかはわかりませんが、修正はモバイルSafariキャッシュをクリアすることです。
手順は次のとおりです。
これでオフラインで動作するはずです。そうでない場合は、おそらくアプリの別のマニフェストの問題です。ブラウザのキャッシュに関する奇妙なバグのように見えます-またはおそらくキャッシュが完全にいっぱいでしたか?誰が知っていますが、それが答えです。みんなありがとう。
iOSは、オフライン時の負荷の問題に非常に敏感なようです。
作業中のページでオフラインにすると、「開くことができませんでした」というエラーが表示されました。問題は、ページがAppCacheを持たないサイトを指すiframeを作成したことであることが判明しました。これらのiframeを削除すると、問題が修正されました。
私の場合、iOSホームスクリーンアプリで実行しているかどうかを示すwindow.navigator.standalone
を使用して処理しました。コードは次のようになりました。
if (!navigator.standalone) insertFrames();
これをHTMLに追加します。
http://jonathanstark.com/blog/2009/09/27/debugging-html-5-offline-application-cache/
マニフェストファイルを作成して他の人のマニフェストと比較したにもかかわらず、このJavaScriptデバッグスクリプトは、他の方法では見つけられなかった手がかりを与えてくれました。マニフェストに構文エラーがあったようです...簡単に言うと、すべてを削除して、各ファイル/イメージへのパスを1つずつ追加する必要がありました。最終結果は同じでしたが、うまくいきました...なんて奇妙な!!!空白/コメントはファイルの構文に影響しますか?