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

/**
 * @description 图片长按 调起菜单弹窗
 */
imgLongTap(row) {
    console.log('图片长按', row)
    /* #ifdef MP-WEIXIN */
    uni.showActionSheet({
        itemList: ['保存图片'],
        success: res => {
            if (res.tapIndex == 0) {
                this.save(row.attrs.src)
            }
        },
        fail: err => {
            // console.log('取消保存')
            console.log('失败', err)
            this.$toast('保存失败')
        },
    })
    /* #endif */
},
// 获取保存图片权限
save(src) {
    let that = this
    uni.authorize({
        scope: 'scope.writePhotosAlbum',
        success() {
            that.saveImg(src)
        },
        complete() {
            uni.getSetting({
                success(res) {
                    if (!res.authSetting['scope.writePhotosAlbum']) {
                        that.opensit(src)
                    }
                },
            })
        },
    })
},
// 保存图片到相册
async saveImg(src) {
    if (src) {
        uni.getImageInfo({
            src: src,
            success(getImageInfoSuccessRes) {
                console.log('getImageInfo success :: ', getImageInfoSuccessRes)
                uni.saveImageToPhotosAlbum({
                    filePath: getImageInfoSuccessRes.path,
                    success(saveImageToPhotosAlbumSuccessRes) {
                        console.log('saveImageToPhotosAlbum success: ', saveImageToPhotosAlbumSuccessRes)
                        uni.showToast({ title: '保存成功' })
                        console.log('发送请求')
                    },
                    fail(saveImageToPhotosAlbumFailRes) {
                        console.log('saveImageToPhotosAlbum fail: ', saveImageToPhotosAlbumFailRes)
                    },
                })
            },
            fail(getImageInfoFailRes) {
                console.log('getImageInfoFailRes fail: ', getImageInfoFailRes)
            },
        })
    }
},
// 打开用户设置
opensit(src) {
    let that = this
    uni.showModal({
        content: '是否授权小程序保存图片到相册?',
        success: function (res) {
            if (res.confirm) {
                uni.openSetting({
                    success(res) {
                        console.log(res.authSetting)
                        that.saveImg(src)
                    },
                })
            } else if (res.cancel) {
                uni.showModal({
                    cancelText: '依然取消',
                    confirmText: '重新授权',
                    content: '很遗憾你点击了取消,这将无法进行保存操作',
                    success: function (res) {
                        if (res.confirm) {
                            uni.openSetting({
                                success(res) {
                                    console.log(res.authSetting)
                                },
                            })
                        } else if (res.cancel) {
                            console.log('用户拒绝授权,无法保存图片')
                        }
                    },
                })
            }
        },
    })
},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值