1. 程式人生 > >egret微信小遊戲在本地使用者檔案目錄下建立檔案並讀取內容

egret微信小遊戲在本地使用者檔案目錄下建立檔案並讀取內容

Platform.ts新增

declare interface Platform {

    getUserInfo(): Promise<any>;

    login(): Promise<any>

    getFileData(fileName): Promise<any>;

    writeFileData(fileName,data): Promise<any>;
}

class DebugPlatform implements Platform {
    async getUserInfo() {
        return { nickName: "username" }
    }
    async login() {

    }
    /**獲得檔案內容 */
    async getFileData(fileName) {
        return { key: "key" }
    }
    /**檔案中寫入 */
    async writeFileData(fileName,data) {

    }
}

使用

 private async getFileData() {
        console.log("讀取");
        let fileName = "score.txt";
        let d = await platform.getFileData(fileName);
        console.log(d);
    }
    private async writeFileData() {
        let fileName = "score.txt";
        let num = ~~(Math.random() * 100);
        console.log("寫入,內容是" + num);
        await platform.writeFileData(fileName, num);
    }

釋出的微信專案中platform.js新增

fs = wx.getFileSystemManager()
  getFileData(filePath) {
    var self = this;
    return new Promise((resolve, reject) => {
      self.fs.readFile({
        filePath: `${wx.env.USER_DATA_PATH}/` + filePath,
        encoding: "utf8",
        success: (data) => {
          resolve(data.data);
        },
        fail: (errMsg) => {
          console.log(errMsg);
          self.fs.writeFileSync(`${wx.env.USER_DATA_PATH}/` + filePath, '0', 'utf8');
        },
        complete: () => { console.log("讀取完成") }
      });
    })
  }
  writeFileData(fileName, num) {
    var self = this;
    return new Promise((resolve, reject) => {
      self.fs.writeFileSync(`${wx.env.USER_DATA_PATH}/` + fileName, num , 'utf8');
    })
  }