小程序-长按保存图片到本地

<view class="qrcardbox">
   <image src="/common/images/about_us_qr.png" data-url="/common/images/about_us_qr.png" bindlongpress='saveweixinImage'></image>
   <text class="long">【长按保存二维码图片】</text>
</view>
// 点击保存图片
saveweixinImage(e) {
  let url = e.currentTarget.dataset.url;
  let that = this;
  //用户需要授权 
  //wx.getSetting获取用户的当前设置。(不管同意与否)
  wx.getSetting({
    success: (res) =>{
      //authSetting用户授权设置信息(用户授权结果)
      //是否授权保存到相册 boolean scope.writePhotosAlbum
      //如果值为undefined:以前没有授权过或者以前第一次点了拒绝之类的
      if(res.authSetting['scope.writePhotosAlbum'] == undefined) {
        // wx.authorize是否开启授权(去申请获取权限) 掉起授权弹窗
        //首先得开启authorize,才能去判断到底是true或者false
        wx.authorize({
          scope: 'scope.writePhotosAlbum',
          success: () =>{
            //同意授权
            that.saveImg1(url)
          },
          fail:(res) =>{
          }
        })
      } else if(res.authSetting['scope.writePhotosAlbum'] == false) {
        that.authConfirm()
      } else {
        //已经授权了
        that.saveImg1(url);
      }
    },
    fail:(res) =>{
      console.log(res)
      that.authConfirm()
    }
  })
},
//去获取用户权限
authConfirm() {
  let that = this
  wx.showModal({
    content: '检测到您没打开保存图片权限,是否去设置打开?',
    confirmText: "确认",
    cancelText: "取消",
    success:function(res) {
      console.log(res)
      if(res.confirm) {
        // 唤醒小程序自带右上角的设置界面
        wx.openSetting({
          success(res) {
            if(res.authSetting['scope.writePhotosAlbum']){
              //that.saveImg1()
            } else {
              wx.showToast({
                title:'您没有授权,无法保存到相册',
                icon:'none'
              })
            }
          }
        })
      } else {
        wx.showToast({
          title: '您没有授权,无法保存到相册',
          icon: 'none'
        })          
      }
    }      
  })
},
//保存到本地
saveImg1(url) {
  //获取图片信息
  wx.getImageInfo({
    src: url,
    success: (res) =>{
      let path = res.path;
      wx.saveImageToPhotosAlbum({
        filePath: path,
        success: (res) => {
          if (res.errMsg == 'saveImageToPhotosAlbum:ok') {
            wx.showToast({
              title: '保存成功',
              icon: 'success'
            })
          }
        },
        fail: (res) => {
        }
      })
    },
    fail:(res) =>{}
  })
},

wx.authorize()唤醒授权窗口,如图(位置信息):
在这里插入图片描述
wx.openSetting() 唤醒小程序自带设置界面,如图:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值