uniapp 微信登录取消授权,以及不等待你做出授权选择就执行方法体

uniapp 微信登录取消授权,以及不等待你做出授权选择就执行方法体

问题描述

在这里插入图片描述

关于小程序调用微信登录,调起权限询问得时候,点击取消,还会继续登录得问题,单纯从 uni.login得回调来看,不管是成功还是失败,他的回调时一样得。

值得注意得是, uni.login 只是为了获取code,真正得授权并不是他

这里得授权其实主要时通过按钮触发得,代码如下。

<button class="loginbutton" open-type="getUserInfo" @getuserinfo="toLogin">登录</button>

那么问题来了,应该如何处理呢,目前,不管点不点取消都会继续执行逻辑!

问题解决

关于按钮得 open-type=“getUserInfo” 这个属性,其实是调起授权得,也就是说我门再进行uni.login 得js之前,先进行了按钮触发得授权操作,然后才执行得uni.login ,如此理解,就好办了!

我这里定义得toLogin得方法时具体得登录逻辑,只需要再这里加入判断是否已经授权就可以,但是并不是通过uni.login ,上代码!

    toLogin() {
      // 获取授权详情
      uni.getSetting({
        success: resAuth => {
          // 如果没有授权,不进行操作
          if (!resAuth.authSetting['scope.userInfo'] || resAuth.authSetting['scope.userInfo'] === false) {
            uni.hideLoading();
          } else {
          	// 否则执行登录
            this.LoginDetail(); // 定义得具体登录逻辑
          }
        }
      });
    },

解释: uni.getSetting 这个方法可以获取当前有多少授权,获取之后,可以通过得到 ‘scope.userInfo’ 得值,来看是否授权,如果授权了呢,就进行详细得登录逻辑,如果没有授权,那么久不进行操作即可!

总结
以上就可以实现,取消授权不进行登录得逻辑,但是这里有个坑,就是button得 @getuserinfo,这里如果,你使用的@click来触发方法得话,他不会等待你的选择,直接就这执行完了,这样你就需要再次点击登录按钮,切记!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值