小程序实现预览,保存图片到相册的几种方法

在开发小程序中,保存图片还是比较常见的,比如海报、推广码的下载等。

1、使用微信预览图片进行保存

小程序和公众号不一样,长按图片是没反应的。我们可以给图片绑定一个点击事件调用微信的自带的 wx.previewImage 方法。把图片进行弹出。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、使用微信wx.saveImageToPhotosAlbum(OBJECT)方法。

在这里插入图片描述
PS:这个方法是不支持网络图片的,如果是从服务器传过来的图片,我们需要先把图片下载或者临时储存到本地。

现在我们可以使用微信的查看图片信息方法 wx.getImageInfo 。可以默认把网络图片生成一个临时图片。ps:使用前先去微信后台配置图片下载域名,否则无法使用。
在这里插入图片描述
在这里插入图片描述
然后就大功告成了!!!

实现代码

    // 保存图片
    save_pic() {
        var _this = this
        var image = _this.data.image

      wx.getImageInfo({
        src: image,
        success: function (sres) {
          var imgSrc = sres.path;
          
          wx.showLoading({
            title: '保存中',
            mask: true
          })
          setTimeout(function () {
            wx.saveImageToPhotosAlbum({
              filePath: imgSrc,
              success: function (data) {
                // wx.showToast({
                //   title: '保存成功',
                //   icon: 'success',
                //   duration: 2000
                // })
                console.log(data)
                wx.showModal({
                  title: '友情提示',
                  content: '图片保存成功,请到相册查找分享',
                  success(res) {
                    if (res.confirm) {
                      wx.switchTab({
                        url: '/pages/user_index/user_index',
                      })
                    } else if (res.cancel) {
                      wx.switchTab({
                        url: '/pages/user_index/user_index',
                      })
                    }
                  }
                })

              },
              fail: function (err) {
                // console.log(err);
                if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
                  console.log("当初用户拒绝,再次发起授权")
                  wx.openSetting({
                    success(settingdata) {
                      console.log(settingdata)
                      if (settingdata.authSetting['scope.writePhotosAlbum']) {
                        console.log('获取权限成功,给出再次点击图片保存到相册的提示。')
                      } else {
                        console.log('获取权限失败,给出不给权限就无法正常使用的提示')
                      }
                    }
                  })
                }
              },
              complete(res) {
                console.log(res);
              }
            })
            wx.hideLoading();
          }, 2000)






        }

      })

    }
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值