微信小程序在设置图片长按保存过程中踩过的坑及解决方法

一、API特点

        1、wx.saveImageToPhotosAlbum,保存图片到系统相册

             特点:当用户拒绝后,下次保存时,会直接执行fail中的代码,不会重新调起授权窗口。 

        2、   wx.getSettingwx.openSetting

             (1)wx.getSetting 获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限

             (2)wx.openSetting 调起客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序已经向用户请求过的权限

             特点:必须有事件才会触发,例如open-type、bind tap、bindlongpress等。

        3、wx.authorize ,  提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口

              特点:授权拒绝后,短时间内不会再调起,会直接执行fail中的代码。

二、解决方法

<image src="" data-src=""  bindlongpress="saveImage"></image>


saveImage(e) {
    let that = this;
    wx.getSetting({
        success(settingdata) {                          
          if(settingdata.authSetting.hasOwnProperty('scope.writePhotosAlbum') && 
           settingdata.authSetting['scope.writePhotosAlbum'] === false) {
              that.getAuthorize();
          } else {
              that.saveImageData();
          }
        },
        fail:function(data) {
        
        }
    })
 },

getAuthorize(){
    let that = this;
    wx.authorize({
      scope: "scope.writePhotosAlbum",
      success(res) {
        console.log(res,'成功');
      },
      fail(res) {
        that.openSettingMethod();
      }
    })
},


openSettingMethod(){
    wx.showModal({
        title: '提示',
        content: '是否打开设置页面',
        success (res) {
            if (res.confirm) {
                wx.openSetting({
                    success: function(res){}
                })
            } else if(res.cancel){
                wx.showToast({
                  title: '已取消',
                  icon: 'none',
                  duration: 1000
                })
            }
        }
    })
},

saveImageData() {
    let url = '';
    wx.saveImageToPhotosAlbum({
        filePath:url,
        success: function(res) {
            wx.showToast({
              title: '已保存至相册,扫码关注',
              icon: 'none',
              duration: 1000
            })
        },
        fail: function(res) {
            wx.showToast({
              title: '保存失败',
              icon: 'none',
              duration: 1000
            })
        }
    })
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值