根据IndexedDB of Cordova Storage文档,存储空间限制在5MB左右(劣势段落的最后一点)。
我的应用程序需要更多存储空间,因此我必须在没有任何其他选项的情况下打破监狱。
第1轮:要求更多存储空间配额。
navigator.webkitPersistentStorage.requestQuota(quota, function(granted) {
window.requestFileSystem(window.PERSISTENT, granted, cbSucc, cbErr);
}, cbErr);
第2轮:实现推送通知服务工作者,该服务工作者将自动授予持久存储权限。
navigator.serviceWorker.register('sw.js')
.then(function(swNotify) {
swNotify.pushManager.subscribe({
userVisibleOnly : true,
applicationServerKey : pubKey
});
});
第3轮:要求持久的存储许可。
navigator.storage.persist().then(...);
环境:
我仍然是5MB监狱的囚犯,我还能做什么呢?
答案 0 :(得分:0)
您可以使用cordova-sqlite-storage插件创建具有无限存储空间的原生SQLite数据库:
与集成到Webview中的IndexedDB(和WebSQL)不同,它使用存储在磁盘上.db
文件中的本机数据库。
目前没有IndexedDB接口填充程序(虽然它位于TODO list),因此您需要重新编写对数据库的API调用。但是,例如,adapter Lawnchair可以生成易于使用的API。