fileStorage.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. function setFileStorage(path, seek, writeData) {
  2. return new Promise((resolve, reject) => {
  3. plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, fs => {
  4. fs.root.getFile(path, {
  5. create: true
  6. }, fileEntry => {
  7. fileEntry.file(file => {
  8. fileEntry.createWriter(writer => {
  9. plus.nativeUI.showWaiting("正在保存文件信息,请勿操作!");
  10. writer.seek(seek);
  11. const writeDataTemp = JSON.stringify(writeData, null,
  12. "\r").replace(/[\r]/g, "");
  13. writer.write(writeDataTemp);
  14. writer.onerror = function() {
  15. plus.nativeUI.closeWaiting();
  16. plus.nativeUI.toast("保存失败, 请重新操作", {
  17. background: "rgba(255, 255, 255, 0.6)",
  18. });
  19. reject("保存失败, 请重新操作");
  20. }
  21. writer.onwrite = function() {
  22. plus.nativeUI.closeWaiting();
  23. plus.nativeUI.toast("文件已保存", {
  24. background: "rgba(255, 255, 255, 0.6)",
  25. });
  26. }
  27. }, e => {
  28. plus.nativeUI.toast("启动文件保存流失败,请检查android版本!", {
  29. background: "rgba(255, 255, 255, 0.6)",
  30. });
  31. reject(e);
  32. })
  33. })
  34. }, e => {
  35. plus.nativeUI.toast("文件获取失败,请检查应用权限!", {
  36. background: "rgba(255, 255, 255, 0.6)",
  37. });
  38. reject(e);
  39. })
  40. })
  41. })
  42. }
  43. function getFileStorage(path) {
  44. return new Promise((resolve, reject) => {
  45. plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, fs => {
  46. fs.root.getFile(path, {
  47. create: false
  48. }, fileEntry => {
  49. fileEntry.file(function(file) {
  50. let fileReader = new plus.io.FileReader();
  51. fileReader.readAsText(file, "utf-8");
  52. fileReader.onerror = e => {
  53. // plus.nativeUI.toast("获取文件失败 " + e, {
  54. // background: "rgba(255, 255, 255, 0.6)",
  55. // });
  56. reject("获取文件失败");
  57. };
  58. fileReader.onload = e => {
  59. resolve(e.target.result);
  60. };
  61. // plus.nativeUI.confirm("检测到本地存在已保存的服务器数据" + file.size +
  62. // "byte,是否读取?", ret => {
  63. // if (ret?.index == 0) {
  64. // let fileReader = new plus.io.FileReader();
  65. // fileReader.readAsText(file, "utf-8");
  66. // fileReader.onerror = e => {
  67. // plus.nativeUI.toast("获取文件失败 " + e, {
  68. // background: "rgba(255, 255, 255, 0.6)",
  69. // });
  70. // reject("获取文件失败");
  71. // };
  72. // fileReader.onload = e => {
  73. // resolve(e.target.result);
  74. // };
  75. // } else {
  76. // resolve(null);
  77. // }
  78. // })
  79. });
  80. }, e => {
  81. plus.nativeUI.toast("文件获取失败,请检查应用权限!", {
  82. background: "rgba(255, 255, 255, 0.6)",
  83. });
  84. reject(e);
  85. })
  86. })
  87. })
  88. }
  89. export {
  90. setFileStorage,
  91. getFileStorage
  92. }