所以我使用Cordova + Sencha Touch作为应用程序,使用Antair的SQLitePlugin(https://github.com/Antair/Cordova-SQLitePlugin)来导入和使用SQLite数据库。
我设法使用Antair的importPrepopulatedDatabase(window.sqlitePlugin.importPrepopulatedDatabase({file:"mydb.db",importIfExists:false})
)方法导入我的(有点大)预填充数据库,它工作得很好。事情是我注意到应用程序使用的大小是它实际需要的两倍,因为它在导入后保留文件。
我检查过,如果我从/ cordova / www / db中删除文件并再次构建,应用程序工作正常,它会将实际的数据库保留在应用程序的文件系统中,我想,但我找不到以编程方式删除的方法导入后的文件。
我环顾四周,发现了cordova文件插件(https://github.com/apache/cordova-plugin-file/blob/master/doc/index.md),但是从我从文档中看到它只授予www文件夹的读取权限,所以不会这样做。
有没有人为此做过任何解决方法?我真的可以使用那个额外的空间。
答案 0 :(得分:1)
通过使用cordova文件插件api,您可以这样做,
请参考:
deleteFile: function(fileName) {
var that = this;
if (!fileName) {
console.error("No fileName specified. File could not be deleted.");
return false;
}
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, function(fileSystem){ // this returns the tmp folder
// File found
fileSystem.root.getFile(fileName, {create: false}, function(fileEntry){
fileEntry.remove(function(success){
console.log(success);
}, function(error){
console.error("deletion failed: " + error);
});
}, that.get('fail'));
}, this.get('fail'));
}