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

申请权限



代码如下

js 复制代码
wx.downloadFile({
    url: image, //仅为示例,并非真实的资源
    success(res) {
        // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
        if (res.statusCode === 200) {
            console.log(res);
            wx.saveImageToPhotosAlbum({
                filePath: res.tempFilePath,
                success: function(res) {
                    wx.showToast({
                        icon: 'none',
                        title: "保存成功"
                    })
                },
                fail: function(err) {
                    if (err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err
                        .errMsg === "saveImageToPhotosAlbum:fail auth deny" || err
                        .errMsg === "saveImageToPhotosAlbum:fail authorize no response"
                    ) {
                        wx.showModal({
                            title: '提示',
                            content: '需要您授权保存相册',
                            showCancel: false,
                            success: modalSuccess => {
                                wx.openSetting({
                                    success(settingdata) {
                                        if (settingdata
                                            .authSetting[
                                                'scope.writePhotosAlbum'
                                            ]) {
                                            console.log(
                                                '获取权限成功,给出再次点击图片保存到相册的提示。'
                                            )
                                        } else {
                                            console.log(
                                                '获取权限失败,给出不给权限就无法正常使用的提示'
                                            )
                                            wx.showToast({
                                                icon: 'none',
                                                title: "暂未授权,保存失败"
                                            })
                                        }
                                    }
                                })
                            }
                        })
                    } else {
                        wx.showToast({
                            icon: 'none',
                            title: "保存失败"
                        })
                    }
                }
            });
        }
    }
})

//保存base64图片
/**
 * 保存base64的图片
 * @param {String} imgData base64编码的数据
 */
function saveBase64Img(imgData) {
  let save = wx.getFileSystemManager();
  let number = Math.random();
  save.writeFile({
    filePath: wx.env.USER_DATA_PATH + '/pic' + number + '.png',
    data: imgData,
    encoding: 'base64',
    success: (res) => {
      wx.saveImageToPhotosAlbum({
        filePath: wx.env.USER_DATA_PATH + '/pic' + number + '.png',
        success: function (res) {
          showNoIconToast("保存成功");
        },
        fail: function (err) {
          showNoIconToast("保存失败");
        }
      });
    },
    fail: (err) => {
        if (err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err
                        .errMsg === "saveImageToPhotosAlbum:fail auth deny" || err
                        .errMsg === "saveImageToPhotosAlbum:fail authorize no response"
                        ) {
        wx.showModal({
            title: '提示',
            content: '需要您授权保存相册',
            showCancel: false,
            success: modalSuccess => {
                wx.openSetting({
                    success(settingdata) {
                        if (settingdata
                            .authSetting[
                                'scope.writePhotosAlbum'
                                ]) {
                            console.log(
                                '获取权限成功,给出再次点击图片保存到相册的提示。'
                                )
                        } else {
                            console.log(
                                '获取权限失败,给出不给权限就无法正常使用的提示'
                                )
                             wx.showToast({
                                icon: 'none',
                                title: "暂未授权,保存失败"
                            })
                        }
                    }
                })
            }
        })else{
            wx.showToast({
                icon: 'none',
                title: "保存失败"
            })
        }
    }
  })
}
相关推荐
CRMEB系统商城5 小时前
【新版发布】标准版PHP v5.6.4正式版,优化部分用户体验
java·大数据·小程序·php·ux
知识分享小能手1 天前
uni-app 入门学习教程,从入门到精通,uni-app 企业项目实战:鲁嗑瓜子项目开发知识点(9)
前端·javascript·学习·微信小程序·小程序·uni-app·vue
知识分享小能手1 天前
uni-app 入门学习教程,从入门到精通,uni-app中uCharts组件学习((8)
vue.js·学习·ui·微信小程序·小程序·uni-app·echarts
社会底层无业大学生1 天前
uniapp微信小程序简单表格展示
微信小程序·小程序·uni-app·vue·1024程序员节
從南走到北1 天前
JAVA无人自助共享系统台球室源码自助开台约球交友系统源码小程序
java·微信·微信小程序·小程序·1024程序员节
2501_915918411 天前
iOS 26 查看电池容量与健康状态 多工具组合的工程实践
android·ios·小程序·https·uni-app·iphone·webview
2501_915909061 天前
iOS 架构设计全解析 从MVC到MVVM与使用 开心上架 跨平台发布 免Mac
android·ios·小程序·https·uni-app·iphone·webview
2501_916008892 天前
Web 前端开发常用工具推荐与团队实践分享
android·前端·ios·小程序·uni-app·iphone·webview
2501_915921432 天前
“HTTPS 个人化”实战,个人站点与设备调试的部署、验证与抓包排查方法
网络协议·http·ios·小程序·https·uni-app·iphone
菜鸟una2 天前
【微信小程序 + 消息订阅 + 授权】 微信小程序实现消息订阅流程介绍,代码示例(仅前端)
前端·vue.js·微信小程序·小程序·typescript·taro·1024程序员节