2013-08-14 19 views
5

'da artırın Normal bir Android web uygulamasında, bir WebSQL veritabanı için maksimum boyut normalde 8MB civarındadır. Bir hibrid web uygulamasında bu limiti artırmak istiyorum. Bunu yapmayı nasıl yaparım?WebSQL kotasının boyutunu WebView

O WebStorage bununla bir ilgisi olabilir gibi görünüyor, ancak boyut, setQuotaForOrigin, set gibi görünüyor orada görebilirsiniz tek yöntem kaldırılmış işaretlenir.

Örnek kod (yani kaldırılmış değildir) açığız :)

+0

Tam ters çözümü arıyorum. iOS7, boyut sınırını aşmaya çalıştığınızda bir güvenlik istisnası atan bir "hata" vardır. Bu yüzden bunu önlemek için DB'mi küçültmem gerekiyor. Bu konuda bulduğum her şeyi göndereceğim. – Chepech

cevap

5

Bir web uygulaması için kota, bir melez uygulamasından farklı görünmektedir (görünümde çalışan bir şeyde olduğu gibi). Bununla birlikte, android.app.Activity alt sınıfınızda aşağıdakileri uygulayarak, yaklaşık 48 MB'de duruncaya kadar kotayı iki katına çıkaracaksınız.

Bu işlem gerçekleştiğinde kullanıcıdan etkileşim istenmeyecektir.

1

Sen how to increase quota limit bu diğer soruya bakmak isteyebilirsiniz.

Boyutun değiştirilmesi, yalnızca yerel bir DB'nin zaten oluşturulmuş olan kullanıcıları için bir sorun gibi görünüyor, bunun nedeni, upgrade scripts for versioning'u çalıştırırken DB'nin boyutunu değiştirmenin bir yolu olmamasıdır. Yani sadece tek (JavaScript kodu) başlatma komut boyutunu değiştirmek gerektiğini de belirtti:

var size = 10 * 1024 * 1024; // changed from 5 to 10MB 
var db = openDatabase("oversized_db", "v1.1", "Ten MB DB", size); 

bu sadece yeni kullanıcıları etkileyeceğini dikkate alın. Önceden DB ile farklı bir boyuta sahip olan tüm kullanıcıların önbelleğini temizlemeniz gerekir (önbelleğin web tarayıcısında önbelleğe sahip olmamanız için o kadar da kötü değil) ancak önceki tüm veriler kaybolacaktır (manuel olarak yeni DB'ye aktarılmadıkça) yerel kod ile). Benim durumumda aynı şeyi yapmak zorundayım ama boyutu azaltmam gerekiyor. Bu konuyla ilgilenirdi.

Bu yardımcı olur umarım.

+0

bu başka bir şey. Bu, Android OS tarafından belirlenen kotayı etkilemez. Bu sadece mevcut veritabanının boyutunu ayarlar. ve ben aslında aslında _anything_ yaptığını görmedim. yaptığım tüm testlerde bu boyut sadece baloney. 10 baytlık bir boyut ayarlayabilirim ve yine de kontenjanın üzerine çıkarak doldurabilirim. Şimdi daha fazla bilgi ile bir cevap ekleyeceğim. – oligofren

+0

Düzenli bir web uygulaması için bu nasıl yapılır. Bunu nasıl yaptığından emin değilim. Ancak, sınırlar genellikle tarayıcı tarafından belirlenir, bu, bir set boyutuna sahip bir DB oluşturmayı denemenin yoludur. – Chepech

+0

Bunun normal bir web uygulaması için yapılma şekli olduğunu biliyorum. Ben sadece boyut argümanının _nothing_ yaptığını söylüyorum. Beklenen şeyi yapmalıyım - boyutu ayarla, ancak çoğu tarayıcı tarafından göz ardı ediliyor gibi görünüyor. Gerçek maksimum boyut tarayıcı/görünüm tarafından ayarlanır. – oligofren