微信小程序 wx.openSetting打开不显示,封装用户授权

这篇具有很好参考价值的文章主要介绍了微信小程序 wx.openSetting打开不显示,封装用户授权。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        测试功能的时候,想要设置用户相册的功能,打开突然什么也没有,要么就是显示“个人信息与权限使用记录”,就连打印出来的 console.log("授权",res.authSetting) 授权信息也是空的。

微信小程序opensetting,小程序项目,微信小程序,小程序

一、 wx.authorize()

        去社区翻回答都在扯皮,也没有准确的说法,只能去看文档了。

授权 | 微信开放文档

微信小程序opensetting,小程序项目,微信小程序,小程序

        看文档感觉原来写的代码也没问题嘛,因为用到“相册”权限,接着去看了一下api——wx.saveImageToPhotosAlbum(Object object) | 微信开放文档

微信小程序opensetting,小程序项目,微信小程序,小程序

wx.saveImageToPhotosAlbum() 只是保存图片到系统相册,且图片的路径要用本地路径

微信小程序opensetting,小程序项目,微信小程序,小程序

         继续看关于“授权”的文档,发现给了wx.authorize()这个API——wx.authorize(Object object) | 微信开放文档。

微信小程序opensetting,小程序项目,微信小程序,小程序

微信小程序opensetting,小程序项目,微信小程序,小程序

        根据文档给的功能描述,结合自己的代码,将以前写的代码在判断时加入 wx.authrize() 就能成功调起了。

二、封装用户授权

function userPermission(permissionName){
  return new Promise((resolve, reject)=>{
    wx.getSetting({
      success: (res)=>{
        // scope.writePhotosAlbum
        if(res.authSetting[permissionName] == undefined){
          wx.authorize({
            scope: permissionName,
            success(){
              console.log("调起弹框授权成功"); //---replace
              resolve();
            },
            fail(){
              console.log("调起弹框授权-拒绝授权")
              // userPermission(permissionName); //重新调用授权
              reject();
            }
          })
        } else if(res.authSetting[permissionName] == false){
          wx.showModal({
            title: "授权失败", content: "请开启授权",success(resModal){
              if(resModal.confirm){
                wx.openSetting({
                  success: function(e){
                    console.log("打开授权页面", e); //---replace
                    // false 表示打开设置面板,但是没有授权就返回了
                    if(e.authSetting[permissionName] == false){
                      return;
                    } else {
                      resolve();
                    }
                  }
                })
              } else if(res.cancel){
                console.log("打开授权页面弹框-拒绝授权")
                reject();
                // userPermission(permissionName); //重新调用授权
              }
            }
          })
        } else {
          resolve();
        }
      },
      fail: (res)=>{
        console.log("授权失败", res);
        reject();
      }
    })
  })
}

使用:文章来源地址https://www.toymoban.com/news/detail-628448.html

userPermission("scope.权限").then(()=>{
  // 授权成功的操作
}).catch(()=>{
  // 拒绝、取消授权的操作
})

到了这里,关于微信小程序 wx.openSetting打开不显示,封装用户授权的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序如何循环控制一行显示几个wx:for

    正如上图所显示的一样,我们改如何控制一行显示几个图形呢? 首先第一种方法,数量少的可以自己一行一行的写,但是当数据很多的时候呢? 这时候就需要我们区使用循环进行代码的编写。废话不多数,直接写代码。 .demo-item{ width: 40%; } .demo-item .screen-data{ padding: 10rpx; te

    2024年02月09日
    浏览(26)
  • 关于微信小程序如何调用wx.login获取openId和用户信息

    首先我们需要在微信开发小工具获取code临时登录凭证,下面是js文件也就是一些需要调用的函数。需要做这个的话我们需要上微信公众平台获取AppId和AppSecret 这个是页面 这是获取到的code 本来获取用户信息是getUserInfo但是微信官方已经把那个接口废弃了,只能获取到一些默认

    2024年02月11日
    浏览(25)
  • uni-app H5中使用wx-open-launch-weapp打开微信小程序

    最近最H5开发,项目需要发起支付,因为原来我们app走的一套是小程序的支付,所以这边需要H5打开小程序实现支付; 微信文档地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html ​ 问题描述 项目开发中遇到的坑,我就不一一列举了,直接上小友的爬坑链接

    2024年02月11日
    浏览(35)
  • 记录 wx-open-launch-weapp 使用react开发微信环境h5打开微信小程序

    准备工作  1、微信签名配合后端 2、必须已认证的公众号(开发模拟器不行,测试号不行) 遇见的问题: 本地调试麻烦,用的手机修改dns,和电脑一致,通过电脑代理,编译时配置host代理运行调试(因为本地开发没办法签名认证) 1、在微信编辑器,测试号内怎么试都不生效,最后发现正式

    2024年02月16日
    浏览(22)
  • 微信小程序toast组件(解决wx.showToast文本最多显示两行问题)

    创建toast组件  index.wxmi index.less index.json index.ts toast.js 使用 index.json index.wxml  index.ts  效果

    2024年02月12日
    浏览(66)
  • uniapp&&微信小程序中打开腾讯地图获取用户位置信息

    个人项目地址: SubTopH前端开发个人站 (自己开发的前端功能和UI组件,一些有趣的小功能,感兴趣的伙伴可以访问,欢迎提出更好的想法,私信沟通,网站属于静态页面) SubTopH前端开发个人站 https://subtop.gitee.io/subtoph.github.io/#/home 实现的效果 第一步:首先登录微信公众平

    2024年02月13日
    浏览(30)
  • 微信小程序学习实录8:H5网页跳转小程序(微信开放标签、wx-open-launch-weapp按钮不显示、noPermissionJsApi)

    微信小程序学习实录7(H5嵌入小程序、获取微信收货地址、数组对象url传值、js获取url参数) 微信小程序学习实录6(百度经纬度采集、手动调整精度、H5嵌入小程序、百度地图jsAPI、实时定位、H5更新自动刷新) 微信小程序学习实录5(H5嵌入小程序、map组件、地图调起功能、腾讯百度

    2024年02月04日
    浏览(28)
  • 微信小程序自定义封装picker实现直接显示年月日时分

    效果如入下: 第一步,封装datepicker.js,可放在utils文件夹下。代码如下:   第二步,wxml代码: js代码:

    2024年01月16日
    浏览(24)
  • 微信小程序更新最新版本后之前打开的用户还是老版本的问题

    小程序从启动到最终被销毁,会经历很多不同的状态,小程序在不同状态下会有不同的表现。 从用户认知的角度看,广义的小程序启动可以分为两种情况,一种是冷启动,一种是热启动。 冷启动:如果用户首次打开,或小程序销毁后被用户再次打开,此时小程序需要重新加

    2024年02月06日
    浏览(26)
  • 微信小程序使用webview打开pdf文档及显示网页内容

    一、微信小程序根据接口返回的pdf链接,在小程序内部浏览pdf内容 需要用到微信小程序的两个api 下载资源到本地 wx.downloadFile wx.openDocument 前一个api下载资源到本地,后一个api打开pdf文档 二、根据网页链接,把网页内容在微信小程序内部显示 需要用到微信小程序的一个标签

    2024年02月09日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包