我有一个要求用其他数据库文件替换设备数据库,就像备份和存储目录(下载/备份/应用程序名称/)或服务器一样,如果我们删除数据或丢失手机,那么我已经从服务器恢复数据并替换为设备数据库文件。
我正在尝试使用代码,但仅替换数据库我没有得到。
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();
}
请有人回答这个问题,我从一周开始就一直在尝试这个问题,但没有运气,也没有得到任何合适的来源..我需要用另一个数据库文件替换设备数据库文件(该文件已经备份以供功能使用) 。 Whatsapp 如何像这样存储和恢复备份..
非常感谢任何帮助..
提前致谢..