微信小程序保存图片到相册(wx.downloadFile)

微信小程序保存图片到相册

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);
            }
        })
    }
})
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风如白话

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值