小程序保存图片,处理个别安卓手机无法保存以及授权关闭后重新开启问题

插件使用vant,因为小程序用户拒接授权以后,再一次保存需要用户主动触发!!!

<button bindtap="handleDownloadFile"><button>
<van-dialog
  title="提示"
  show="{{ show }}"
  show-cancel-button
  message="请在设置中开启微信的存储空间权限"
  confirm-button-open-type="openSetting"
  bind:cancel="cancel"
  bind:opensetting="cancel"
>
  
</van-dialog>
handleDownloadFile() {
      this.setDisabled(true);
      // filePath要自定义,否则个别安卓手机无法保存
      let fileName = new Date().valueOf()
      let filePath = wx.env.USER_DATA_PATH + "/" + fileName + '.JPG'
      wx.downloadFile({
        url: this.data.url,
        filePath: filePath,
        success: (res) => {
          this.setData({
            tempFilePath: res.filePath
          });
          console.log('res', res)
          this.handleSaveImageToPhotosAlbum()
        },
        fail: (err) => {
          console.log(err)
        }
      });
    },
handleSaveImageToPhotosAlbum() {
      wx.saveImageToPhotosAlbum({
        filePath: this.data.tempFilePath,
        success: (res) => {
          console.log('保存成功=', res);
          // setTimeout是为了防止在苹果手机中一闪而过
          wx.hideLoading()
          this.onCancel()
          setTimeout(() => {
            wx.showToast({
              title: '保存成功!请到相册中查看',
              icon: 'none',
              duration: 3000
            });
          }, 0);
        },
        fail: (err) => {
          console.log('保存失败2=', err);
          this.saveError()
        }
      });
    },
saveError () {
   /* 验证是否禁用了存储空间 start */
   this.setDisabled(false, 'isDisabledSave');
   wx.hideLoading()
   if (!this.haveWritePotos) {
     this.setData({
       show: true
     })
   } else {
     wx.showModal({
       title: '提示',
       content: '保存失败',
       showCancel: false
     });
   }
 },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值