Closed guopp closed 6 months ago
已确认是微信的 BUG,encoding 设置 binary 不会返回 ArrayBuffer,不设置任何值则会返回 ArrayBuffer。 以下是更正后的用法
wx.getFileSystemManager().readFile(ReadFileOption()
..filePath = filePath
// ..encoding = "binary" // 不要设置任何值
..success = (result) {
final arrayBuffer = ArrayBuffer($$context$$: result.data);
print(arrayBuffer.value().toList()); // uint8list
});
如果使用 nightly 的 wechat_api 则可以这样写
wx.getFileSystemManager().readFile(ReadFileOption()
..filePath = filePath
// ..encoding = "binary" // 不要设置任何值
..success = (result) {
final arrayBuffer = result.data as ArrayBuffer;
print(arrayBuffer.value().toList()); // uint8list
});
Flutter 版本号:
3.16.5
MPFlutter 版本号:2.5.0
操作系统:mac os 14.2.1
IDE:android studio 2023.1.1
使用
FileSystemManager.readFile
encoding
参数 设置成'binary'
,回调里面result.data
类型是JSObject
. 如果不设置encoding
返回数据是String
. 按照小程序文档应该返回ArrayBuffer
.