我希望的是把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");
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);
}
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
看看用户权限
我想换成 canvas绘制出来这个图片,再保存成图片,也是ios完全不能绘制出来这个图,报错都没有
打印fail看看报什么错误
绘制图片的话,根本就没报错,就是绘制没反应
图片可以采用:
fileManager.readdirSync(wx.env.USER_DATA_PATH);
这个方法读取路径,发现ios里面确实保存了我的图片临时文件,
但是就是无法通过saveImageToPhotosAlbum保存到系统相册。
writeFileSync:正常执行,且验证了保存临时文件成功
saveImageToPhotosAlbum:ios 报错 PHPhotos Error Domain Code 3302 保存到本地相册失败