微信小程序pc端点击授权登录没反应

作者分享了在4月27日遇到的小程序登录接口升级问题,通过try-catch实现兼容,确保PC端也能适配。重点讲述了如何在新版wx.getUserProfile和旧版wx.getUserInfo间切换授权过程的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天是4月27号,本来这篇文章是应该4月17号写的,但是我实在是太懒了,而且近期也比较忙,忙着改bug,忙着上线。那时候小程序授权登录才刚刚改,好巧不巧我们的小程序刚刚开始准备上线,测试的时候就发现到了问题

在这里插入图片描述

是因为小程序的登录接口改了,从wx.getUserInfo改成了wx.getUserProfile

在这里插入图片描述

然而现在手机端支持了新的api,但是pc端仍然没支持,所以要做一下适配

就在获取用户授权得时候直接try catch一下就好了。走不了新的wx.getUserProfile就走老的wx.getUserInfo

代码

/**
* @name      授权登录
* @date      2021-04-06
*/
getUserProfile(e){
    let that=this
    try{
        //  新版
        wx.getUserProfile({
            desc: '用于完善会员资料',
            success: (res) => {
                let {avatarUrl, gender, nickName,province,city}=res.userInfo
                that.setData({ avatarUrl, gender, nickName })
                wx.login({
                    success: (rest) => {
                        if (rest.code) {
                            that.getOpenId(rest.code,that)
                        } else {
                            wx.showToast({
                                title: '授权失败',
                                icon: 'none',
                                duration: 3000
                            });
                        }
                    }
                });
            },
            fail(e){
                console.log(e)
            }
        })
    }catch(e){
        //  老版
        //进入未授权 -- wx.getUserInfo获取用户信息 
        wx.getUserInfo({
            success: function(ress) {
                let {avatarUrl, gender, nickName,province,city}=ress.userInfo
                that.setData({ avatarUrl, gender, nickName })
                wx.login({
                    success: (rest) => {
                        if (rest.code) {
                            that.getOpenId(rest.code,that)
                        } else {
                            wx.showToast({
                                title: '授权失败',
                                icon: 'none',
                                duration: 3000
                            });
                        }
                    }
                });
            }
        })
    }
},

okok

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值