微信小程序保存图片到相册
1、兼容android+ios;
2、支持一次保存多张图片;
const app = getApp();
var util = require('../../utils/util.js');
Page({
/**
* 页面的初始数据
*/
data: {
name: '',
cardnum: '',
tel: '',
images: [
// '../images/xieyi.png',
// "../images/xieyi.png",
// "../images/xieyi.png"
'https://timgs.top1buyer.com/admin/special/special_img_20190301160108243.jpg',
'https://timgs.top1buyer.com/admin/special/special_img_20190301160111756.jpg',
'https://timgs.top1buyer.com/admin/special/special_img_20190304160141454.jpg'
],
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
var _this = this;
var pages = getCurrentPages();
var currPage = pages[pages.length - 1]; //当前页面
var prevOnePage = pages[pages.length - 2]; //上一个页面 (资格认证页面)
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
var _this = this;
},
// 取消 --> 返回上一页
cancelFn() {
var _this = this;
wx.navigateBack();
},
// 保存图片方法
saveImage(filePath, index) {
var _this = this;
if(index == 0){
wx.showLoading({
title: '协议保存中...',
})
}
wx.downloadFile({
url: filePath,
success: function (res) {
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePath, // 此为图片路径
success: (res) => {
console.log(res)
if(index == _this.data.images.length - 1){
_this.showToast('保存成功,请到相册中查看');
wx.hideLoading();
wx.navigateTo({
url: '../pay/pay',
})
}
},
fail: (err) => {
console.log(err)
_this.showToast('保存失败,请稍后重试')
}
})
}
})
},
// 微信提示方法
showToast(title) {
wx.showToast({
title: title
});
},
// 点击保存图片到相册(授权)
saveImageToPhotos(filePath, callback) {
var _this = this
// 相册授权
wx.getSetting({
success(res) {
// 进行授权检测,未授权则进行弹层授权
if (!res.authSetting['scope.writePhotosAlbum']) {
wx.authorize({
scope: 'scope.writePhotosAlbum',
success() {
for (var i = 0; i < filePath.length; i++){
_this.saveImage(filePath[i], i)
}
},
// 拒绝授权时,则进入手机设置页面,可进行授权设置
fail() {
wx.openSetting({
success: function(data) {
console.log("openSetting success");
},
fail: function(data) {
console.log("openSetting fail");
}
});
}
})
} else {
// 已授权则直接进行保存图片
// console.log(filePath[0]);
for (var i = 0; i < filePath.length; i++) {
_this.saveImage(filePath[i], i)
}
}
},
fail(res) {
console.log(res);
}
})
}
})