zoukankan      html  css  js  c++  java
  • 小程序-保存图片到相册拒绝授权后,重新调用授权保存图片到相册

    让我先大小3声“哈哈哈”酷毙了

    写小程序时,用到授权时,有些用户可能好奇心重,总会出其不意的乱点,若是程序员没有考虑到,那这时BUG就出现了~~作为前端开发的我心累呀~

    下面举一个例子:   保存图片到相册时,点击按钮“保存”,之后会现出来一个微信小程序自带的弹窗----询问用户是否要保存。你说既然先点了保存那就是确定要保存了嘛。但是弹窗中有一个选项“拒绝”,我X,一大批脏话脱口而出!!!!!!!!!!!!

    正常情况下,点了“拒绝”后,完了,完了,完了!!!!弹窗关闭,之后若是再次点击“保存”按钮,没反应了。好焦急,好难受。

    这时,重新授权就需要用到了:

    wx.openSetting({   })
     
    TMMD,我以为这样就ok了。哪知道我又遇到了问题。重新授权代码完成后,开发工具上是能够重授权了,哪知道我手机真机测试时,一点反应都没有,而且还没有报错。把我那个焦急的呀。怎么办呢,不修复了?就这样?这怎么可能,若真这样,客户发现问题后不就会天天呼我,修复BUG。那咋行。
     
    现在我把我的代码弄下来,记录起来,可能会帮到跟我遇到同样问题的小同伴。也能帮我做个记录。
    1.开发工具上的代码(ok)
    wx.saveImageToPhotosAlbum({
         filePath: canvasImg,
         success: function (res) {
               wx.showToast({
                    title: '保存成功',
                    image: "../images/nologo.png",
                    duration: 1500,
               })
        },
        fail: function (res) {
               console.log(res)
               if (res.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
                         console.log("打开设置窗口");
                         wx.openSetting({
                                   success(settingdata) {
                                            console.log(settingdata)
                                           if (settingdata.authSetting["scope.writePhotosAlbum"]) {
                                                     console.log("获取权限成功,再次点击图片保存到相册")
                                           } else {
                                                     console.log("获取权限失败")
                                           }
                                   }
                          })
                 }
    })
     
    2.下面的代码是真机上成功运行的(ok)
       wx.saveImageToPhotosAlbum({
                 filePath: canvasImg,
                  success: function (res) {
                        wx.showToast({
                               title: '保存成功',
                               image: "../images/nologo.png",
                               duration: 1500,
                         })
                    },
                   fail: function (res) {
                         console.log(res)
                         if (res.errMsg === "saveImageToPhotosAlbum:fail:auth denied") {
                                   console.log("打开设置窗口");
                                   wx.openSetting({
                                             success(settingdata) {
                                                    console.log(settingdata)
                                                    if (settingdata.authSetting["scope.writePhotosAlbum"]) {
                                                                    console.log("获取权限成功,再次点击图片保存到相册")
                                                    } else {
                                                                     console.log("获取权限失败")
                                                    }
                                               }
                                    })
                         }
                 }
     })
  • 相关阅读:
    Java泛型T与?
    json解析出现:java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to XXX
    Html 项目使用自定义字体文件问题
    修复 WordPress 通过邮箱 找回密码时的链接无效&新用户注册时提示的链接无效
    Linux查询进程和结束进程
    Linux --- 程序后台运行的几种方法
    bash_profile和bashsrc的区别
    在CentOS中安装与配置Server JRE 8
    JRE和JDK的区别
    java中静态代码块详解
  • 原文地址:https://www.cnblogs.com/liuqingxia/p/8359486.html
Copyright © 2011-2022 走看看