这个地方还是有些困惑人的,拒绝了保存图片的授权,处理不好再次保存图片的时候就没有反应了,还是很急人的,那么我们来记录一下这个地方。
大家都知道,微信小程序保存图片等都需要获取相对应的权限才可以进行接下来的操作可行,那么如果我们一开始就拒绝了授权,再次想要保存的时候也还是要打开权限才行,所以我们来认识两个跟小程序授权相关的api。

获取用户当前的设置

要使用保存图片权限之前我们首先要看看设备有没有这个权限,所以要获取一下用户当前的设置

wx.getSetting({success (res) {console.log(res.authSetting)// res.authSetting = {//   "scope.userInfo": true,//   "scope.userLocation": true// }}
})

有上面的代码可以看到,这个api的返回值中包含了用户已经打开的设置,那么对于我们来说,如果使用的时候已经打开了保存图片的权限scope.writePhotosAlbum是true,我们就可以直接保存图片到本地;但是如果非true,那么我们就要了解一下怎么打开这个权限了~

设置需要打开的权限

注意:设置界面只会出现小程序已经向用户请求过的权限。
2.3.0 版本开始,用户发生点击行为后,才可以跳转打开设置页,管理授权信息。详情

这段话的意思就是,我们要向设置我们想要用的设置,必须是我们之前拒绝过的,有拒绝记录的,才能在这个地方找到把那个可以设置打开。

wx.openSetting({success (res) {console.log(res.authSetting)}
})

书接上面,如果我们使用保存权限时发现我们已经拒绝了授权,就是并没有打开这项权限,所以使用打开权限的api,然后就会去到设置权限的页面

打开这个权限回去就可以保存图片了。
上代码:

saveImg1() {let that = this;//看看是否有保存图片的权限,没有就去打开权限let openSetting = function(resourse) {wx.getSetting({success: (res) => {console.log('getSetting', res);if (res.authSetting['scope.writePhotosAlbum']) {saveImg(resourse)}else{wx.showModal({title: '是否授权保存到相册',content: '需要获取您的保存图片权限,请确认授权,否则图片将无法保存到相册',success: function (tip) {if (tip.confirm) {wx.openSetting({success: function (data) {if (data.authSetting["scope.writePhotosAlbum"] === true) {applyApi.toast("授权成功");saveImg(resourse)} else {applyApi.toast("授权失败");}}})}}})}},fail: function(res) {},complete: () => {}})}let saveImg = function(resourse) {console.log("保存图片:",resourse);wx.saveImageToPhotosAlbum({filePath: resourse.tempFilePath,success: function(res) {console.log(res)applyApi.toast('保存成功!')},fail: function(res) {console.log(res)console.log('fail-saveImageToPhotosAlbum')//这个地方加个缓存的意思就是,为了拒绝过了之后缓存为true,再次操作的时候才会去核实保存图片权限的问题if(wx.getStorageSync("saveImg") == true){openSetting(resourse)}wx.setStorageSync("saveImg",true);}})}wx.downloadFile({url: that.QRCodeUrl,success: function(res) {console.log(res)saveImg(res)},fail: function() {console.log('fail-downloadFile')}})}

授权成功后返回保存页面图片就会执行保存程序了。
OK,以上就是小程序保存图片的内容咯,有问题欢迎评论留言~

微信小程序保存图片拒绝授权后的操作相关推荐

  1. uni-app微信小程序uni.getLocation获取位置;authorize scope.userLocation需要在app.json中声明permission;小程序用户拒绝授权后重新授权

    需求:点击按钮获取当前微信位置,以及点击拒绝授权后,下次点击还可以拉起授权窗口: 拒绝授权后重新拉起授权操作: 直接授权操作: 一.问题1:报authorize scope.userLocation需 ...

  2. 微信小程序用户拒绝授权之后重新调用

    console.log("onLoad=====");var that = this;wx.getUserInfo({success: function (res) {var us ...

  3. 微信小程序用户拒绝授权地理位置信息再次调起授权窗口

    目的 注意 chooseLocation() {let that = thiswx.chooseLocation({latitude: '',longitude: '',success(res) {c ...

  4. 微信小程序--保存图片到相册 失败:saveImageToPhotosAlbum:fail auth deny

    @wx.saveImageToPhotosAlbum 微信小程序–保存图片到相册 失败:saveImageToPhotosAlbum:fail auth deny 是否授权了保存功能 wx.openS ...

  5. (转)微信小程序保存图片到相册

    这篇文章主要为大家详细介绍了微信小程序保存图片到相册权限设置,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 微信小程序保存图片到相册可以分成两种:一种是保存网络图片,一 ...

  6. 微信小程序之用户授权

    用户授权 今天我们来讲解微信小程序之用户授权,首先这个我们得分2种情况:1.弹出授权框用户点击允许 2.弹出授权框用户点击拒绝 第一种情况: 很好处理,这里就不多做介绍,按正常的走就可以了 第二种情况 ...

  7. 微信小程序 摄像头 录音授权

    微信小程序 摄像头 && 录音授权 进入程序弹出是否授权 app.js文件 onShow 事件里面写入 wx.getSetting({success(res) {if (!res.au ...

  8. 微信授权绑定手机号 java_微信小程序获取手机号授权用户登录功能

    小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPhoneNumber这个组件通过button来实现(别的标签无 ...

  9. php 微信小程序获取手机号_实例讲解微信小程序获取手机号授权用户登录功能...

    小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写.本文主要给大家分享微信小程序获取手机号授权用户登录功能,需要的朋友参考下吧, ...

最新文章

  1. 通俗理解kaggle比赛大杀器xgboost + XGBOOST手算内容 转
  2. 计算机维护常识_系统篇
  3. linux获取后台进程的控制台数据
  4. HDFS多用户管理ACL机制other权限访问控制的理解
  5. pytorch torch.item()(返回此张量的值作为标准Python数字。 这仅适用于具有一个元素的张量。)
  6. 微信公众平台 图片 java_Java微信公众平台之素材管理
  7. hibernate persist不能插入到表中
  8. 怎么在c语言里输入数组元素,如何在不输入n的情况下输入数组中的元素? (C )...
  9. sql cast()函数
  10. js延时函数_js自执行函数分享
  11. 结合我的创业经历,有一下3点感受
  12. PHP下ajax跨域的解决方案之window.name
  13. 10款Mac上程序员装机必备的开发工具推荐和下载
  14. 减治法——生成组合对象
  15. 案例:恒丰银行——大数据实时流处理平台
  16. 【AI每日播报】霍金:AI将让中产阶级大面积失业
  17. 2019 年中国搜索引擎市场份额排行榜
  18. Pytorch - masked_fill方法参数详解与使用
  19. 37岁被裁员,出来再找工作,大公司不愿要,无奈去小公司面试,HR的话扎心了
  20. php ci log,PHP框架CI CodeIgniter 的log_message开启日志记录方法

热门文章

  1. 2016/11/07 线程的创建和启动
  2. win7升级到win10不能上网解决方法
  3. IOS APP 国际化(实现不跟随系统语言,不用重启应用,代码切换stroyboard ,xib ,图片,其他资源)...
  4. 将阿拉伯数字转换成中文大写的好算法
  5. 删除选修c语言课程的女生成绩记录,pta10-1 查询没有选修‘C语言‘课程的学生 (10分)...
  6. 并查集——家谱(洛谷 P2814)
  7. C语言课后习题(21)
  8. java定时器小程序_【微信小程序】使用setTimeout试试定时器
  9. oracle复合字段,复合索引 选择频繁的字段,还是选择选择性低的字段 放在前面?...
  10. PostgreSQL用户角色和权限管理