3

新しい iOS 6 を搭載した iPad で奇妙な動作を発見しました。Web アプリをオフラインで使用できるようにテストしています。Web アプリはキャッシュ マニフェストを持つ静的な Web サイトに過ぎないため、sencha touch のような特別なフレームワークや phnoegap のようなツールは使用されません。HTML、CSS、JavaScript、および cache.manifest だけです。

アプリは以前は問題なく動作していました。ウェブサイトをホーム画面に保存できました。そこから開くと、すべてのデータがキャッシュ用にダウンロードされます。ダウンロードの最後に、キャッシュを 50MB に増やすかどうかを尋ねるポップアップが表示されました。受け入れられました。すべて問題ありませんでした。オフラインでの使用は機能していました。

iOS 6 へのアップデート後: アプリにいくつかの変更を加えました。ホーム画面からアプリをアンインストールしました。モバイルサファリで再度開きました。ホーム画面に保存しました。開くと、ダウンロードが想定どおりに開始されます。しかし、その後 99% でフリーズします。コンソールで調べると、「サイズ クォータを超えたため、アプリケーション キャッシュの更新に失敗しました」というエラー メッセージが表示されます。

そして、奇妙なことに、ブラウザで開くとダウンロードが開始され、最後にキャッシュ サイズを 50MB に増やすかどうか尋ねられます。もちろん認めます。Safari の設定で「ウェブサイト データ」を見ると、このアプリのすべてのキャッシュ データが約 33MB であることがわかります。したがって、50MB を超えることはありません。

これはiOS6のバグですか?iOS 6 にアップデートしてから、Web サイトをホーム画面に保存するときに、データのキャッシュに問題が発生した人はいますか? 私は本当にここで立ち往生しているので、何か助けてくれてありがとう... Web上で役立つものを見つけることができませんでした...

(残念ながら、Web アプリやそのファイルへのリンクを投稿することはできません)。

編集:

この問題に関する詳細情報を見つけました。

http://www.nsbasic.com/blog/?p=928

ホーム画面に保存された Web アプリは、ネイティブ アプリのように扱われるようになったようです。つまり、ホーム画面に保存された同じ Web アプリの各インスタンスは、独自の「ストレージ サンドボックス」を取得します。そのため、データはモバイル Safari に保存されたデータから独立しています。これは、モバイル サファリの Web サイト データをすべて削除しても、ホーム画面に保存された Web アプリには影響しないことを意味します (ios6 以前は同じデータを共有していました)。

これも見つけました:

iOS 6 が webapp の GeoLocation を壊す (apple-mobile-web-app-capable)

まったく同じトピックではありませんが、関連している可能性があります。を使用してホーム画面に保存されたどうやらWebアプリ

<meta content="yes" name="apple-mobile-web-app-capable" />

ジオロケーションを使用することはできません。地理位置情報は、このメタ タグを Web アプリから削除した場合にのみ機能します。これはキャッシュの問題の回避策でもあるのかもしれませんが、まだテストできませんでした。しかし、繰り返しになりますが、ホーム画面に保存された Web アプリがネイティブ アプリのように扱われるようになれば、cache.manifest は不要になるのでしょうか? またわかりましたらここで報告します。

EDIT2:

いくつかのテストの後、ウェブやアップルからの有用なヒントはありませんでしたが、少なくとも何かを見つけました:削除すると

<meta content="yes" name="apple-mobile-web-app-capable" />

もちろん、サイトからはすべて正常に動作します.Safariを開くのと同じで、これまでのところ問題はありませんでした. だから私の興味は、ブラウザのクロムなしで動作させることです。上記のように、キャッシングは 99% までしか行われず、キャッシュ サイズのクォータを超えるエラーが発生します。次に、ホーム画面アプリを閉じて、もう一度開きました。これで、キャッシュ ダウンロードが再開され、問題なく完了しました。フリーズもエラーもありません!そして、すべてがローカルに保存されているようです。今日はiPadシミュレーターでしかテストできませんでしたが、後でデバイスを手に入れたらすぐに確認できることを願っています.

そのため、キャッシュ サイズを増やすかどうかを尋ねられる代わりに、キャッシュ サイズ クォータの超過エラーが発生するようです。おそらく、ホーム画面アプリのデータ ストレージが別の方法で処理されるようになったため、手動でキャッシュ サイズを増やす必要がなくなりました (もちろん、これは単なる憶測です)。それでも、これが当てはまる場合、エラーは発生しないはずです。そのため、キャッシュ サイズを増やすように求められる代わりに、ホーム画面アプリを 2 回開く必要があります。

EDIT3:

実際のデバイスでこの動作を確認できました: ホーム画面に保存 -> ホーム画面から開く -> キャッシュ ファイルにダウンロード -> 最後にキャッシュ サイズ クォータ超過エラー -> ホーム画面アプリを閉じる (ホーム ボタンを押す) - > もう一度開く -> キャッシュされたファイルが再度ダウンロードされる -> 今回はエラーなし -> すべてオフラインで使用可能。

また、iOS 5 を搭載したデバイスでテストしたところ、エラーなく期待どおりに動作しました。したがって、これは間違いなく iOS 6 の問題です。

他の誰かがこの動作またはバグを確認できますか?

EDIT4:

ときどき iOS 6.1.3 でこれをテストする機会がありましたが、残念ながら同じ動作を続けています...

4

1 に答える 1