IOS 无法访问和保存临时文件的图片,wx.env.USER_DATA_PATH、writeFile
我希望的是把base64图片,保存到本地,安卓可以,微信开发者工具可以,到了ios就不行了。直接保存就报错PHPhotos Error Domain Code 3302,
我尝试绘制到canvas再保存,但是绘制根本绘制不上去,也是只有ios不行。
同样的,尝试previewImage api,安卓能拿到这个图片并展示,ios不行
无论是直接下载,还是绘制到canvas,全都是安卓行,ios不行,这里是uniapp的api,我直接改用wx也是一样结果
function test(base64:string){
const fileManager = uni.getFileSystemManager();
const filePath = wx.env.USER_DATA_PATH + "/code" + new Date().getTime() + ".png";
const qrcode = base64.replace(/^data:image\/\w+;base64,/, "");
fileManager.writeFileSync(filePath, qrcode, "base64");
uni.saveImageToPhotosAlbum({
filePath: filePath, // 保存路径
success: (res) => {
console.log("保存成功", res);
uni.showToast({
title: "保存成功",
});
back(); // 返回
},
fail: (err) => {
console.log("保存失败", err);
back(err); // 返回错误
},
});
}
function test(base64:string){
const ctx = uni.createCanvasContext("canvasId"); // 获取canvas上下文
const fileManager = uni.getFileSystemManager();
const filePath = wx.env.USER_DATA_PATH + "/code" + new Date().getTime() + ".png";
const qrcode = base64.replace(/^data:image\/\w+;base64,/, "");
fileManager.writeFileSync(filePath, qrcode, "base64");
ctx.drawImage(filePath, 0, 0, renderBox.w, renderBox.h);
setTimeout(() => {
ctx.draw()
}, 1000);
}