移动端不需要跨页面的数据传输了,那是不是可以通过isMobileTerminal判断一下?
来源:18-8 微信开放平台大解析

曹学习
2022-06-16
目前QQ登录这块是下面这样的
// QQ 登录挂起
onMounted(() => {
QC.Login(
{
btnId: 'qqLoginBtn' //插入按钮的节点id
},
// 登录成功之后的回调,但是需要注意,这个回调只会在《登录回调页面中被执行》
// 登录存在缓存,登录成功一次之后,下次进入会自动重新登录(即:触发该方法,所以我们应该在离开登录页面时,注销登录)
(data, opts) => {
console.log('QQ登录成功')
console.log(data)
// 1.注销登录,否则在后续登录中会直接触发该回调
QC.Login.signOut()
// 2. 获取当前用户唯一标识,作为判断用户是否已注册的依据
const accessToken = /access_token=((.*))&expires_in/.exec(
window.location.hash
)
// 3. 拼接请求对象
const oauthObj = {
nickname: data.nickname,
figureurl_qq_2: data.figureurl_qq_2,
accessToken
}
console.log(oauthObj)
// 4. 完成跨页面传输
brodacast.send(oauthObj)
// 5. 针对于 移动端而言:通过移动端触发 QQ 登录会展示三个页面,原页面、QQ 吊起页面、回调页面。并且移动端一个页面展示整屏内容,且无法直接通过 window.close() 关闭,所以在移动端中,我们需要在当前页面继续进行后续操作,不需要跨页面的数据传输了。
oauthLogin(LOGIN_TYPE_QQ, oauthObj)
// 6. 在 PC 端下,关闭第三方窗口
window.close()
}
)
})
因为移动端特殊性所以不需要跨页面传输,那么是不是第四步可以直接通过isMobileTerminal判断一下,如果是移动端就不执行诶?还有就是如果不进行判断,就像上面这样写,保留brodacast.send和window.close在移动端下会不会有什么影响
写回答
1回答
-
Sunday
2022-06-16
你好
可以通过 isMobileTerminal 进行判断。但是不判断也不会出现错误。(移动端场景比较复杂,建议保留以避免出现意料之外的错误)
00
相似问题