function setFileStorage(path, seek, writeData) { return new Promise((resolve, reject) => { plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, fs => { fs.root.getFile(path, { create: true }, fileEntry => { fileEntry.file(file => { fileEntry.createWriter(writer => { plus.nativeUI.showWaiting("正在保存文件信息,请勿操作!"); writer.seek(seek); const writeDataTemp = JSON.stringify(writeData, null, "\r").replace(/[\r]/g, ""); writer.write(writeDataTemp); writer.onerror = function() { plus.nativeUI.closeWaiting(); plus.nativeUI.toast("保存失败, 请重新操作", { background: "rgba(255, 255, 255, 0.6)", }); reject("保存失败, 请重新操作"); } writer.onwrite = function() { plus.nativeUI.closeWaiting(); plus.nativeUI.toast("文件已保存", { background: "rgba(255, 255, 255, 0.6)", }); } }, e => { plus.nativeUI.toast("启动文件保存流失败,请检查android版本!", { background: "rgba(255, 255, 255, 0.6)", }); reject(e); }) }) }, e => { plus.nativeUI.toast("文件获取失败,请检查应用权限!", { background: "rgba(255, 255, 255, 0.6)", }); reject(e); }) }) }) } function getFileStorage(path) { return new Promise((resolve, reject) => { plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, fs => { fs.root.getFile(path, { create: false }, fileEntry => { fileEntry.file(function(file) { let fileReader = new plus.io.FileReader(); fileReader.readAsText(file, "utf-8"); fileReader.onerror = e => { // plus.nativeUI.toast("获取文件失败 " + e, { // background: "rgba(255, 255, 255, 0.6)", // }); reject("获取文件失败"); }; fileReader.onload = e => { resolve(e.target.result); }; // plus.nativeUI.confirm("检测到本地存在已保存的服务器数据" + file.size + // "byte,是否读取?", ret => { // if (ret?.index == 0) { // let fileReader = new plus.io.FileReader(); // fileReader.readAsText(file, "utf-8"); // fileReader.onerror = e => { // plus.nativeUI.toast("获取文件失败 " + e, { // background: "rgba(255, 255, 255, 0.6)", // }); // reject("获取文件失败"); // }; // fileReader.onload = e => { // resolve(e.target.result); // }; // } else { // resolve(null); // } // }) }); }, e => { plus.nativeUI.toast("文件获取失败,请检查应用权限!", { background: "rgba(255, 255, 255, 0.6)", }); reject(e); }) }) }) } export { setFileStorage, getFileStorage }