微信小游戏 存储 downloadFile 下载下来的json文件,但是要去除hander
时间: 2023-05-26 09:05:44 浏览: 213
微信小程序之多文件下载的简单封装示例
在微信小游戏中使用 downloadFile 下载下来的 JSON 文件,并去除 handler。可以通过以下方式实现:
1. 在 downloadFile 回调函数中获取下载的文件路径和临时文件路径:
```javascript
wx.downloadFile({
url: 'https://example.com/example.json',
success: function(res) {
var filePath = res.filePath;
var tempFilePath = res.tempFilePath;
// ... 去除 handler
}
});
```
2. 使用 wx.getFileSystemManager 创建文件系统管理器,并使用 writeFile 将临时文件复制到本地文件(即将下载的文件存储到本地):
```javascript
wx.downloadFile({
url: 'https://example.com/example.json',
success: function(res) {
var filePath = res.filePath;
var tempFilePath = res.tempFilePath;
wx.getFileSystemManager().writeFile({
filePath: filePath,
data: "",
success: function() {
wx.getFileSystemManager().copyFile({
srcPath: tempFilePath,
destPath: filePath,
success: function(res) {
console.log('copyFile success', res);
},
fail: function(res) {
console.log('copyFile fail', res);
}
});
},
fail: function(res) {
console.log('writeFile fail', res);
}
});
}
});
```
3. 在去除 handler 前,先读取本地文件中的 JSON 内容,然后解析出对象:
```javascript
wx.downloadFile({
url: 'https://example.com/example.json',
success: function(res) {
var filePath = res.filePath;
var tempFilePath = res.tempFilePath;
wx.getFileSystemManager().writeFile({
filePath: filePath,
data: "",
success: function() {
wx.getFileSystemManager().copyFile({
srcPath: tempFilePath,
destPath: filePath,
success: function(res) {
wx.getFileSystemManager().readFile({
filePath: filePath,
encoding: 'utf-8',
success: function(res) {
var json = JSON.parse(res.data);
// ... 去除 handler
},
fail: function(res) {
console.log('readFile fail', res);
}
});
},
fail: function(res) {
console.log('copyFile fail', res);
}
});
},
fail: function(res) {
console.log('writeFile fail', res);
}
});
}
});
```
4. 最后,可以使用解析出的 JSON 对象进行后续的操作。
完整的示例代码:
```javascript
wx.downloadFile({
url: 'https://example.com/example.json',
success: function(res) {
var filePath = res.filePath;
var tempFilePath = res.tempFilePath;
wx.getFileSystemManager().writeFile({
filePath: filePath,
data: "",
success: function() {
wx.getFileSystemManager().copyFile({
srcPath: tempFilePath,
destPath: filePath,
success: function(res) {
wx.getFileSystemManager().readFile({
filePath: filePath,
encoding: 'utf-8',
success: function(res) {
var json = JSON.parse(res.data);
delete json.handler; // 去除 handler
// ... 后续操作
console.log(json);
},
fail: function(res) {
console.log('readFile fail', res);
}
});
},
fail: function(res) {
console.log('copyFile fail', res);
}
});
},
fail: function(res) {
console.log('writeFile fail', res);
}
});
}
});
```
阅读全文