我有一个要求用其他db文件替换设备数据库,它就像备份和存储目录(下载/备份/ appname /)或服务器,如果我们删除数据或者如果我们丢失了手机,那么我已经从服务器恢复数据并替换为设备数据库文件。 我正在尝试使用代码,但只更换数据库,但我没有。
function doBackup(){
var defered = $.Deferred();
var version = parseFloat(window.device.version);
dbPath = cordova.file.applicationStorageDirectory
+'/app_webview/databases/file__0/1';
if(version < 4.4) {
dbPath = cordova.file.applicationStorageDirector+'/app_database
/file__0/0000000000000001.db';
}
var fileName = 'Backup_' + new Date().getTime();
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs) {
fs.root.getDirectory(backupFolder, {
create : true,
exclusive : false
}, function(dir) {
window.resolveLocalFileSystemURL(dbPath, function(db) {
db.copyTo(dir, fileName, function() {
SaveBackupData(data, GetBackupData);
}, onfail)
});
}, onfail);
}, onfail);
function onfail(err){
return defered.reject(err);
}
return defered.promise();
}
为了替换数据库,我正在尝试下面的代码
function copyFileToDB(fName){
var defered = $.Deferred();
// request for file system
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs){
//request for directory Entry
var fileName = fName;
fs.root.getDirectory("Download/SMU/Backup/", {
create: false,
exclusive: false
}, function(destDirectoryEntry){
window.resolveLocalFileSystemURL(cordova.file.applicationStorageDirectory
+"app_webview/databases/file__0/1",function(fileEntry){
fileEntry.copyTo(destDirectoryEntry, fileEntry.name, function(){
alert("success - "+JSON.stringify(destDirectoryEntry));
}, onfail);
},onfail)
}, onfail);
}, onfail);
function onfail(err){
return defered.reject(err);
}
return defered.promise();
}
请任何人回答这个问题,我一直在尝试这一周但是没有运气也没有得到任何合适的来源..我需要用另一个db文件替换设备db文件(已经备份了功能使用)。 whatsapp如何存储和恢复这样的备份..
Anyhelp非常感谢.. 提前谢谢..