http://app.ft.com (Financial TimesモバイルWebアプリ)を開くと、アプリを「ホーム」に追加するように求められます。
これを行った後、アプリを開くと、localstoreageデータベースのサイズを最大50MBに増やすことを再度許可するように求められます。
私はたまたまこれについて知っています;)
既存のデータベースのストレージサイズの増加をリクエストするAPIはありません。増加を強制する1つの方法があります。増加が必要なサイズでデータベースにデータを書き込み、ユーザーにプロンプトを表示します。ただし、これは低速になりますおよび現在割り当てられているスペースを確認する方法がないため、お勧めしません。
Black Frogはこの正しい部分を持っています。これを行う唯一の適切な方法は、開かれたときに非常に大きなデータベースを要求することです。たとえば、
openDatabase('databaseName', '1.0', 'My Database', 50*1024*1024, …
…50MBのスペースを要求します。
ただし、ユーザーが最初にサイトにアクセスするときに、一度に50MBの制限についてプロンプトを表示したくない場合があります。それで、最初は5MBを要求し、後で50MBで再び開くことができると思いますか?残念ながら、これは機能しません。2番目のオープンの試みは、量を増やして、サイレントに成功し、サイズの増加を促したり、実際に使用可能なサイズを増やしたりすることはありません。
したがって、FTアプリは5MBの「プレビュー」データベースから開始するため、ユーザーは最初のロード時にプロンプトが表示されません。割り当てられたスペースはすべてのデータベース間で共有される必要があるため、この5MBの制限を超えないようにします。
ユーザーがより多くのコンテンツの保存を許可することを選択した場合、アプリは次に40MBのスペースを持つ別の名前でデータベースを開こうとします(ユーザーは50MBを承認するように求められます)。これにより、そのデータベースで40MB、元のプレビューデータベースで5MBが許可されるため、行の挿入時にどちらも失敗しないはずです。現在、iOSでは合計50MBが上限です。
現在、すべてのブラウザーはデータベース領域の制限を異なる方法で処理しているため、クロスプラットフォームを計画している場合は、慎重にテストしてください。デスクトップサファリはかなりうまく処理し、はるかに大きなサイズを許可します。 Chromeはまったく増加を許可していません;など。すべての "HTML5"実装が奇妙な方法で異なることを期待してください:)
このデータベースは Web SQL Database APIの一部であり、HTML5の一部ではありません。以下を使用して、データベースのサイズを設定します
function prepareDatabase(ready, error) {
return openDatabase('documents', '1.0', 'Offline document storage', 50*1024*1024, function (db) {
db.changeVersion('', '1.0', function (t) {
t.executeSql('CREATE TABLE docids (id, name)');
}, error);
});
}
Web SQLデータベースの紹介 HTML5のDoctorには、これがどのように機能するかについての非常に簡単なチュートリアルがあります。
IPad 2(iOS 5.1.1)でオフラインアプリをテストしたところ、アプリ内で特別なことを行う必要はありません。たとえば、私のアプリには約18 MBのオフラインデータがあります。ブラウザーがURLにヒットすると、ブラウザーはサイズを25 MBに増やすように要求するメッセージをポップアップし、それを受け入れましたが、すべて問題ありません。ありがとう
これはブラウザ固有です。ほとんどは5MBに設定しており、どこかで設定を増やしていくオプションもあります。ただし、すべてのブラウザがこれを提供しているわけではありません。