javascript - otros - liberar espacio sistema iphone
¿Cómo puedo solicitar un aumento del tamaño de almacenamiento local HTML5 en el iPad, como lo hace la aplicación web FT? (5)
Si abre http://app.ft.com (la aplicación web móvil Financial Times), se le solicitará que agregue la aplicación a su "página de inicio".
Después de hacer esto, cuando abra la aplicación, se le volverá a solicitar que permita aumentar el tamaño de la base de datos localstoreage hasta 50MB.
- ¿Cómo puede hacerse esto? ¿Hay alguna llamada API de JavaScript? Permisos o lo que sea?
- ¿Este iPad (iOS?) Es específico o funciona en otros navegadores Webkit?
Acabo de probar con mi aplicación fuera de línea en el iPad 2 (iOS 5.1.1) que no necesitamos hacer nada específico dentro de la aplicación. Por ejemplo, mi aplicación tiene alrededor de 18 MB de datos sin conexión. Cuando el navegador pulsa URL, el navegador muestra el mensaje solicitando aumentar el tamaño a 25 MB y lo acepté y todo está bien. Gracias
Es específico del navegador. La mayoría lo ha configurado en 5 MB y algunos dan la opción de aumentarlo a través de una configuración en algún lugar. Sin embargo, no todos los navegadores ofrecen esto.
Esta base de datos forma parte de la API de base de datos web SQL , que no forma parte de HTML5. Use el siguiente el conjunto del tamaño de su base de datos
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);
});
}
Al presentar las bases de datos web SQL en HTML5, Doctor tiene un tutorial muy rápido sobre cómo funciona todo esto.
Huh: Sumérgete en HTML5 dice que ningún navegador admitió esto a partir de febrero de 2011 , así que supongo que esto podría ser algo de iOS 4.3. (iOS 4.3 enviado en marzo de 2011.)
No puedo encontrar ninguna referencia a él desde un Google rápido. La propia documentación del desarrollador de Apple podría mencionarlo, aunque no estoy seguro si eso está disponible para los suscriptores que no usan SDK.
Por casualidad sé algo sobre esto;)
No hay API para solicitar un aumento en el tamaño de almacenamiento para una base de datos existente. Hay una forma de forzar un aumento: escriba los datos en la base de datos en un tamaño tal que se requiera un aumento, lo que incita al usuario. Sin embargo, esto sería lento y no hay forma de saber el espacio asignado actualmente, por lo que no se recomienda.
Black Frog tiene parte de esto correcto: la única forma de hacerlo es solicitar una base de datos muy grande cuando se abre, por ejemplo:
openDatabase(''databaseName'', ''1.0'', ''My Database'', 50*1024*1024, …
... para solicitar 50MB de espacio.
Sin embargo, cuando el usuario visita el sitio por primera vez, es posible que no desee solicitarles un límite de 50 MB a la vez; entonces, ¿podría pensar que podría pedir 5MB al principio, y luego volver a abrirlo con 50MB? Desafortunadamente, esto no funciona: el segundo intento de apertura, con una cantidad aumentada, se realiza de manera silenciosa, no solicita un aumento de tamaño y no aumenta el tamaño disponible.
Por lo tanto, la aplicación FT comienza con una base de datos de "vista previa" de 5MB, de modo que no se solicita al usuario la primera carga. Intenta no superar este límite de 5 MB, ya que cualquier espacio asignado debe compartirse en todas las bases de datos.
Si el usuario elige permitir el almacenamiento de más contenido, la aplicación intenta abrir una base de datos con un nombre diferente con 40 MB de espacio (para lo cual se solicita al usuario que apruebe 50 MB). Esto permite 40 MB en esa base de datos y 5 MB en la base de datos de vista previa original, por lo que ninguno de los dos debería fallar al insertar filas, ya que el total de 50 MB es actualmente el límite en iOS.
Actualmente, todos los navegadores manejan los límites de espacio de la base de datos de manera diferente, por lo que si está planificando multiplataforma, pruebe con cuidado. Desktop Safari lo maneja bastante bien, permitiendo mucho más grande; Chrome no permite ningún aumento en absoluto; etc. Espere que todas las implementaciones de "HTML5" difieran de maneras extrañas :)