移动端 持久化数据在客户端

  //filePath为存放路径(如:_doc/xxx/xxx.json) 注意:路径一定要_doc开头的,content为存放的数据内容, isAppend为true时:追加内容, false时:重新写入  
    saveFileData: function(filePath, content, isAppend) {
        plus.io.requestFileSystem(plus.io.PRIVATE_DOC, function(fs) {
            // fs.root是根目录操作对象DirectoryEntry
            fs.root.getFile(filePath, {
                create: true
            }, function(fileEntry) {
                fileEntry.createWriter(function(writer) {
                    writer.onwrite = function(e) {
                        console.log("saveFileData保存成功!");
                    };
                    var data = JSON.stringify(content);
                    if (isAppend) {
                        try {
                            writer.seek(writer.length);
                        } catch (e) {
                            console.log("file doesn't exist!");
                        }
                    }
                    writer.write(data);
                    console.log('saveFileData保存数据成功:' + data);
                }, function(e) {
                    console.log('saveFileData保存数据失败');
                });
            });
        }, function(e) {
            console.log('saveFileData保存数据失败');
        });
    }
// 读取
readFile: function(filePath, callback) { callback = callback || mui.noop; plus.io.requestFileSystem(plus.io.PRIVATE_DOC, function(fs) { // fs.root是根目录操作对象DirectoryEntry fs.root.getFile(filePath, { create: false }, function(fileEntry) { fileEntry.file(function(file) { console.log(file.size + '--' + file.name); var fileReader = new plus.io.FileReader(); fileReader.readAsText(file, 'utf-8'); fileReader.onloadend = function(evt) { var news = []; var result = evt.target.result; if (result != "" && result != null) { console.log("读取成功缓存成功:" + result); callback({ state: 1, message: "读取成功!", data: result }); }else{ callback({ state: 0, message: "读取失败!", data: result }); } } }); }); }, function(e) { callback({ state: -1, message: e.message }); }); }
//删除
delFile: function(filePath) { if (plus.os.name == 'iOS') { filePath = 'file://' + filePath; } //var filePath = 'userInfo/'; plus.io.resolveLocalFileSystemURL(filePath, function(entry) { console.log('删除entry:' + entry); //读取这个目录对象 var directoryReader = entry.createReader(); //读取这个目录下的所有文件 directoryReader.readEntries(function(entries) { console.log('删除entries:' + entries) //如果有才操作 if (entries.length > 0) { //删除目录将会删除其下的所有文件及子目录 不能删除根目录,如果操作删除根目录 //将会删除目录下的文件及子目录,不会删除根目录自身。 删除目录成功通过succesCB //回调返回,失败则通过errorCB返回。 entry.removeRecursively(function(entry) { console.log('删除成功回调') //删除成功回调 }, function(e) { //错误信息 console.log(e.message + ' ?!') }) } }) }) }
posted @ 2022-06-20 14:04  EarlyTao  阅读(59)  评论(0编辑  收藏  举报