可以直接按顺序执行login和getUserProfile方法,因为getUserProfile方法需要用户点击确认后才能获取到用户信息,这时候login方法已经执行完毕了,所以不需要考虑异步回调的问题。代码如下 // 执行登录操作 let code = ''; wx.login({ success:(res) => { code = res.code; }, }); // 获取用户信息 wx.getUserProfile({ lang: 'zh_CN', desc: '用户登录', success: (res) => { let loginParams = { code: code, encryptedData: res.encryptedData, iv: res.iv, rawData: res.rawData, signature: res.signature }; _this.postLogin(loginParams); }, // 失败回调 fail: () => { // 弹出错误 App.showError('已拒绝小程序获取信息'); } });
wx.getUserProfile不能和wx.login一起使用?mac 模拟器1.05.2102010 基础库2.16.0 调用wx.login获取code后,再调用wx.getUserProfile,可能会失败,触发fail函数,error msg: ''getUserProfile:fail can only be invoked by user TAP gesture"。 如果不能同时使用,那如何校验用户信息的准确性或者解密encryptedData呢?
2021-04-17