微信小程序中长按保存图片(https/本地)的三种方式

微信小程序长按二维码的方式

方法一,图片放在云上或者是https开头的

 //保存图片
  savePic:function(e){
    let that = this;
    let src = e.currentTarget.dataset.src;
    wx.showModal({
      title: '提示',
      content: '确定保存二维码?',
      success(res){
        if (res.confirm) {
          wx.downloadFile({
            url: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1575027657735&di=d818c4fc5f0d4aa9ea3790600dd20d16&imgtype=0&src=http%3A%2F%2Fhbimg.b0.upaiyun.com%2Faadcf356470c9a6717ab6c5ed73476025fd1a1a410da7-kArZxa_fw658',
            success: function (res) {
              //图片保存到本地
              wx.saveImageToPhotosAlbum({
                filePath: res.tempFilePath,
                success: function (data) {
                  wx.showToast({
                    title: '保存成功!',
                  })
                },
                fail: function (err) {
                  if (err.errMsg === "saveImageToPhotosAlbum:fail cancel") {
                    wx.showToast({
                      title: '保存失败!',
                      icon: 'none'
                    })
                  }
                },
              })
            },
            fail: function (res) {
              wx.showModal({
                title: '文件下载错误',
                content: res.errMsg,
              })
            },
          })
        } else if (res.cancel) {
        }
      }
    })
  },

本地的图片

sence:是一个base64转成的如下图,这个的话是可以在线将图片转换成base64搜一下就可以有转换的网站了。

 //保存图片
  savePic:function(e){
    let that = this;
    let src = e.currentTarget.dataset.src;
    wx.showModal({
      title: '提示',
      content: '确定保存二维码?',
      success(res){
        if (res.confirm) {
           var aa = wx.getFileSystemManager();
           aa.writeFile({
             filePath: wx.env.USER_DATA_PATH + '/PATRIZIA PEPE.png',
             data: that.data.scene.slice(22),
             encoding: 'base64',
             success: res => {
               wx.saveImageToPhotosAlbum({
                 filePath: wx.env.USER_DATA_PATH + '/PATRIZIA PEPE.png',
                 success: function (res) {
                   wx.showToast({
                     title: '保存成功',
                   })
                 },
                 fail: function (err) {
                 }
               })
       
             }, fail: err => {
             }
           })
        
        } else if (res.cancel) {
        }
      }
    })
  },
 savePhoto () {
        const _this = this;
        wx.getImageInfo({
            src: '/static/images/home/Qr.png',
            success: function (res) {
                wx.saveImageToPhotosAlbum({
                    filePath: res.path,
                    success (result) {
                        _this.setData({ show: false });
                        wx.showToast({
                            title: '保存成功',
                            icon: 'success',
                            duration: 2000
                        })
                    },
                    fail (err) {
                        if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
                            wx.openSetting({
                                success (settingdata) {
                                    if (settingdata.authSetting['scope.writePhotosAlbum']) {
                                        _this.savePhoto()
                                    } else {
                                        wx.showToast({
                                            title: '获取权限失败,无法保存图片',
                                            icon: 'success',
                                            duration: 2000
                                        })
                                    }
                                }
                            })
                        }
                    }
                })
            }
        })
    }

作者:yosun
链接:https://juejin.im/post/5dc22be2f265da4d0a68db87
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

第三个方法是无意间在看掘金的时候发现的,非常的使用简单。而且这篇文章中也分享了很多的小程序巧用的知识点,大家可以去看看

最后其实这三个的方式最后都是用到了微信的 wx.saveImageToPhotosAlbum(Object object)

具体的可以参考微信官方文档 https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.saveImageToPhotosAlbum.html

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 uni.saveImageToPhotosAlbum 接口将图片保存到微信小程序的本地相册中。 首先,需要在小程序的 app.json 中添加如下权限: ``` "permission": { "scope.writePhotosAlbum": { "desc": "保存图片到相册需要使用" } } ``` 然后,在需要保存图片的页面或组件中,可以调用 uni.saveImageToPhotosAlbum 接口,如下所示: ``` uni.saveImageToPhotosAlbum({ filePath: '图片文件路径', success: function () { console.log('保存图片到本地相册成功'); }, fail: function () { console.log('保存图片到本地相册失败'); } }); ``` 注意: - filePath 参数为图片文件的本地路径。 - uni.saveImageToPhotosAlbum 接口需要用户授权,如果用户拒绝授权,则无法保存图片到本地相册。 在用户授权后,就可以将图片保存到微信小程序的本地相册中了。 ### 回答2: 在uniapp中,可以使用uni.request和uni.downloadFile这两个api来保存微信小程序中的图片到本地。 首先,我们需要将图片保存到服务器上,可以通过uni.request来完成。将图片的url传递给uni.request,并设置responseType为arraybuffer。示例代码如下: uni.request({ url: '图片url', responseType: 'arraybuffer', success: res => { // res.data即为图片的二进制数据 // 接下来将图片保存到本地 } }) 接着,我们可以通过uni.downloadFile api来将图片保存到本地。将res.data作为参数传递给uni.downloadFile的url参数,并设置保存路径filePath。示例代码如下: uni.downloadFile({ url: 'data:image/png;base64,' + uni.arrayBufferToBase64(res.data), success: res => { if (res.statusCode === 200) { // res.tempFilePath为图片保存到本地的临时文件路径 console.log(res.tempFilePath) } } }) 最后,我们可以将保存到本地的临时文件移动到用户的相册中,使用uni.saveImageToPhotosAlbum来完成。示例代码如下: uni.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: res => { console.log('保存成功') }, fail: err => { console.log('保存失败') } }) 以上就是使用uniapp微信小程序保存图片到本地的简单步骤。需要注意的是,uniapp也提供了其他的api和方法来实现保存图片的功能,可以根据具体需求选择适合的方法。 ### 回答3: uniapp是一种跨平台开发框架,可以同时开发多个平台的应用程序,包括微信小程序。在uniapp中,我们可以使用uni-app插件来实现将图片保存到本地的功能。 具体步骤如下: 1. 首先,我们需要在uniapp项目中引入uni-app插件,可以通过在项目的根目录下的`uni.xml`文件中的`easycom`节点中添加`"@dcloudio/uni-save-image"`来引入插件。 2. 在需要保存图片的页面中,使用`uni.saveImageToPhotosAlbum()`方法来保存图片到本地相册。该方法需要传入一个对象参数,其中包含要保存的图片路径`filePath`和一个回调函数`success`用来处理保存成功的情况,和一个`fail`函数用来处理保存失败的情况。 3. 在回调函数中,我们可以通过判断返回值中的`errMsg`属性来判断保存是否成功,如果成功则显示保存成功的提示,否则显示保存失败的提示。 下面是一个示例代码: ``` <template> <view> <image src="/static/image.png"></image> <button @click="saveImage">保存图片</button> </view> </template> <script> export default { methods: { saveImage() { uni.saveImageToPhotosAlbum({ filePath: '/static/image.png', success(res) { uni.showToast({ title: '保存成功', icon: 'success' }); }, fail(res) { uni.showToast({ title: '保存失败', icon: 'none' }); } }); } } } </script> ``` 以上就是在uniapp微信小程序保存图片到本地的简单步骤和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值