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)",
						// });
						// fileReader.abort();  // 终止读取
						// fileReader = null;   // 释放引用
						reject("获取文件失败");
					};
					// fileReader.onload = e => {
					//     const result = e.target.result;  // 先保存结果
					//     fileReader.abort();              // 终止读取
					//     fileReader = null;               // 释放引用
					//     resolve(result);                 // 再 resolve
					// };
					fileReader.onload = e => {
						// fileReader.abort();  // 终止读取
						// fileReader = null;   // 释放引用
						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
}