- 当前 Bug 的表现(可附上截图)
项目上线后,首页白屏,因为首页数据目前需要登陆后才能拿到相应数据(需要wx.login后用code去获取token)。
为了排查原因,在所有有可能错误的地方加了mta监测,发现wx.login失败。导致后续亲求中断。
mta监测到wx.login的相关错误如下图:
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
demo提供不了,因为这个是偶发,不是必现。
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
小程序 | Bug | wx.login | 客户端 | 7.0.4 | 2.5.0 |
3 个回答
我的情况比你还糟糕 我在 wx.login 之前 成功 失败都埋了点 偶尔会出现只有之前的点打上了 后面成功和失败都没执行。。。
不好意思,没理解你的意思,wx.login之前指的是?或者你可以把相关代码截图出来看看?
Log({type:
'event'
, remarks:
'开始调用 wx.login'
})
console.log(
'开始调用 wx.login '
)
wx.login({
timeout: 5000,
success: (res) => {
if
(res && (res.code == undefined || res.code ==
null
)) {
Log({type:
'error'
, remarks:
'wx.login 无 code 返回'
})
return
}
const launchData = wx.getLaunchOptionsSync();
const code = res.code
const sceneData = {
p_user_id: launchData.query.p_user_id == undefined ?
null
: launchData.query.p_user_id,
source_id: launchData.query.source_id == undefined ? 1 : launchData.query.source_id,
type: launchData.query.type == undefined ? 1 : launchData.query.type,
shop_id: launchData.query.shop_id == undefined ? 0 : launchData.query.shop_id
}
Taro.getUserInfo().then((res) => {
this
.props.authSuccess()
this
.startLogin(code, res, sceneData)
}).
catch
((err) => {
this
.props.hideLoading()
Log({type:
'error'
, remarks:
'调用 wx.getUserInfo 失败'
+ err})
throw
(err)
});
},
fail: (res) => {
wx.showToast({
title:
'微信内部错误,请重试'
,
icon:
'none'
})
this
.getWechatAuth()
Log({type:
'error'
, remarks:
'调用 wx.login 失败'
+ res})
throw
(err)
}
})
Log 那个方法是封装的一个打点的方法 会往服务端发送一条记录 现在偶尔就光能收到“开始调用 wx.login” 然后后面就没反应了,界面就一直不动 后面的事件都不执行。原先用的是Taro.login 为了排除是 Taro 的锅换成了 wx.login
或者是调用login多次,导致session_key被覆盖
wx.login没有同时调用多次,是在调用失败后的回调里,再次调用发起的wx.login,并且两次失败后会间隔1s后才发起调用
你好,请确认是否网络问题导致
应该可以排除网络问题,因为mta也是需要网络的,既然能把错误信息上传到mta,那说明网络是没有问题的。
@nickname 期待你的回复
wx.login fail回调的message是?
错误信息收集的不是很详细,因为被mta给截取了,显示不全,所以仅供参考
appid给一下