收藏
回答

button组件bindgetuserinfo用户拒绝授权

问题模块 框架类型 问题类型 操作系统 工具版本
开发者工具 小程序 需求 Windows v1.02.1901230

- 需求的场景描述(希望解决的问题)

需求:希望点击一个button得到用户授权后隐藏Button显示用户头像


问题:如果用户点击Button后但又拒绝用户授权之后,因为bindgetuserinfo绑定的函数默认已经成功授权,将只会隐藏button但不显示用户头像



- 希望提供的能力

希望getuserinfo函数提供wx.getUserInfo接口的全部功能,包括拒绝授权等功能



----------------------------------------------------------------------------------------


已用代码解决需求,谢谢

最后一次编辑于  02-19  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

5 个回答

  • 墨染的天空
    墨染的天空
    02-20

    执行bindgetuserinfo时,如果没有授权,此时e.detail.errMsg会有fail的信息。没有授权的情况需要自己去做处理了。


    02-20
    赞同 1
    回复 1
    • 🐋
      🐋
      02-20

      是,我看了以下detail成功时和失败时的,用不同的地方做条件再处理

      02-20
      回复
  • bibolibo
    bibolibo
    08-06

    你这个和最初始化小程序的时候那个效果差不多,就是给按钮,然后wxml 中使用了判断 .而你要的拒绝后再次授权那个 ,可以使用官方的

    <button open-type="getUserInfo" bindgetuserinfo="userInfoHandler"> Click me 唤起用户授权 </button>

    这样来唤起用户授权(用户已经授权不会再次唤起授权窗口) ,授权设置页面也可以用判断让他自己开启

    <button open-type="openSetting" bindopensetting="callback">打开设置页</button>,

    如果我没理解错,应该是这样,理解错了.请指出,萌新路过..


    08-06
    赞同
    回复
  • 🐋
    🐋
    02-19


    02-19
    赞同
    回复
  • จุ๊บ
    จุ๊บ
    02-19

    用户都拒绝授权了,你怎么获取的用户信息?

    02-19
    赞同
    回复 5
    • 🐋
      🐋
      02-19

      我希望用户成功授权后按钮消失显示用户头像和昵称,用户拒绝授权后按钮存在用户点击可再次进行授权,而这个绑定的函数并非像wx.getUserInfo接口有success和fail,而是直接显示detail,只能用detail判断是success还是fail,我认为提供wx.getUserInfo相同的功能使得客户端代码更简单,即用success和fail获取detail而不是用detail判断success还是fail

      02-19
      回复
    • จุ๊บ
      จุ๊บ
      02-19回复🐋

      你可以直接判断数据库中是否存在数据,如果存在就显示用户信息,不存在就显示授权按钮

      02-19
      回复
    • 🐋
      🐋
      02-19回复จุ๊บ

      如果用户之前同意授权用户信息后插入到自己的数据库中,但是如果用户手动关闭授权后,虽然能够在主页面显示当前用户信息,但是用户信息以后就不会更新了,只能是第一次同意授权时的信息,所以还是要有接口

      02-19
      回复
    • 🐋
      🐋
      02-19

      授权的

      02-19
      回复
    • 🐋
      🐋
      02-19
      getUserInfo: function(e) {
          if(e.detail.userInfo) {
            app.globalData.userInfo = e.detail.userInfo
            this.setData({
              userInfo: e.detail.userInfo,
              hasUserInfo: true
            })
          }
        }

      我用这段代码解决了,如果用户拒绝授权,detail中userInfo为空,如果同意userInfo不为空,则得到userInfo和将决定按钮是否显示的hasUserInfo置真

      02-19
      回复
  • 铭锋科技
    铭锋科技
    02-18

    有回调的bindgetuserinfo = 'getinfo'


    getinfo(e){


    }

    02-18
    赞同
    回复 1
    • 🐋
      🐋
      02-19

      这个函数返回的直接是getUserInfo接口的detail,所以需要用detail中的信息userInfo是否不为空来判断是否用户授权,而并不是像getUserInfo接口返回的是success和fail直接判断

      02-19
      回复