web-dev-qa-db-ja.com

iOS:Appleホーム画面に保存されたWebアプリのHTML5オフライン機能を無効にしましたか?

私は、HTML5マニフェストを使用して、iOS上でいくつかのWebアプリをオフラインで動作させるために多くの作業を行ってきました。私は他の誰もが抱えている典型的な問題に遭遇し、それらを修正しました。iPhone4のデスクトップにWebアプリを保存する場合を除いて、すべてが正常に機能しているようです。

これを行って機内モードを有効にすると、アプリにアクセスしようとすると次のアラートが表示されますホーム画面から: "インターネットに接続されていないため、アプリ名を開くことができませんでした。」アプリへのアクセスSafariブラウザ経由オフラインでも正常に動作します。

これが私の側のエラーなのか、それとも回避策のわずかな可能性なのかを誰かが知っている場合は、教えてください。

新しいFinancialTimes Webアプリをダウンロードしても(広範なlocalStorageサポートで非常によくできています)、オフラインでアクセスするとエラーが発生しますホーム画面から

技術仕様: iOS4.3.3でiPhone4を実行しています(ただし、4.3.2でも問題が発生しました)

27
Mauvis Ledford

コメント(特にRowanのもの)を読んだ後、私はさらにテストを実行し、答えを見つけました:

いいえ、Appleはホーム画面に保存されたWebアプリのHTML5オフライン機能を無効にしませんでした。ほとんどの場合、機能します。機能しないバグがあります。機能しません。マニフェストの設定と関係があるようです(おそらく、ある時点で悪いマニフェストまたは不完全なマニフェストをダウンロードした場合を除きます)。それがどれほど普及しているかはわかりませんが、修正はモバイルSafariキャッシュをクリアすることです。

手順は次のとおりです。

  1. Webアプリを閉じます(バックグラウンドに貼り付いていないことを確認してください)。
  2. モバイルSafariキャッシュをクリア:[設定]> [Safari]> [キャッシュをクリア]
  3. アプリを再度開きました(キャッシュ用)。
  4. Webアプリをもう一度閉じます(バックグラウンドに貼り付いていないことを確認してください)。
  5. 「機内モード」を有効にする:[設定]> [機内モード]
  6. アプリを再度開きました。

これでオフラインで動作するはずです。そうでない場合は、おそらくアプリの別のマニフェストの問題です。ブラウザのキャッシュに関する奇妙なバグのように見えます-またはおそらくキャッシュが完全にいっぱいでしたか?誰が知っていますが、それが答えです。みんなありがとう。

15
Mauvis Ledford

iOSは、オフライン時の負荷の問題に非常に敏感なようです。

作業中のページでオフラインにすると、「開くことができませんでした」というエラーが表示されました。問題は、ページがAppCacheを持たないサイトを指すiframeを作成したことであることが判明しました。これらのiframeを削除すると、問題が修正されました。

私の場合、iOSホームスクリーンアプリで実行しているかどうかを示すwindow.navigator.standaloneを使用して処理しました。コードは次のようになりました。

if (!navigator.standalone) insertFrames();
2
Dan Fabulich

これをHTMLに追加します。

http://jonathanstark.com/blog/2009/09/27/debugging-html-5-offline-application-cache/

マニフェストファイルを作成して他の人のマニフェストと比較したにもかかわらず、このJavaScriptデバッグスクリプトは、他の方法では見つけられなかった手がかりを与えてくれました。マニフェストに構文エラーがあったようです...簡単に言うと、すべてを削除して、各ファイル/イメージへのパスを1つずつ追加する必要がありました。最終結果は同じでしたが、うまくいきました...なんて奇妙な!!!空白/コメントはファイルの構文に影響しますか?

2
Sarah Williams