重点API:
wx.saveImageToPhotosAlbum
参考文档:
https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.saveImageToPhotosAlbum.html
文档划重点:
-
wx.saveImageToPhotosAlbum
image.png
故:不能直接将网络图片塞在api中进行保存!
另:相对路径的图片更加不可以!!!
-
wx.downloadFile
image.png
downFile需要配置域名:
image.png -
wx.openSetting
image.png
image.png
网络图片保存在本地
(本文只提供网络图片保存在本地的方式)
/**
* 将图片保存本地
*/
export default Behavior({
data: {
},
methods: {
wxGetCurrSetting(img) {
let that = this;
wx.getSetting({
success(res) {
if (!res.authSetting['scope.writePhotosAlbum']) { // 没有将图片保存在本地的权限
wx.authorize({ // 申请权限
scope: "scope.writePhotosAlbum",
}).then((res) => {
that.downFile(img);
},(err) => {
// 若之前拒绝过申请,则不会show起授权弹框。则需要通过wx.openSetting打开授权页面,但是该api只能通过tap触发,不支持直接调用
that.failSetting();
})
}
else {
that.downFile(img);
}
}
});
},
downFile(img) {
let that = this;
// 下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径 (本地路径),单次下载允许的最大文件为 200MB。
// 另外wx.downloadFile需要在后台配置域名
wx.downloadFile({
url: img,
success: function (res) {
if (res.statusCode === 200) {
// 将本地临时路径的图片保存在本地
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success(res) {
that.successSave();
},
fail(res) {
that.failSave();
}
})
}
},
fail(res) {
that.failSave();
}
});
},
wxOpenSetting() {
// 打开设置页面需要button的tap触发,dialog的点击事件在真机上存在问题
wx.openSetting({
success (res) {
},
fail(err) {
console.log('wx.openSetting err === ', err);
}
});
}
}
});
网友评论