问题描述:
在uniapp中配置了一键登录,在ios的真机调试中无法调用,不知道是不是sdk没有打包进去。一键登录已经在DCloud开通了,但是应用还在审核中。
一、运行到手机 ---> ios模拟器的标准底座没有提示报错。但是提示网络环境不支持。
二、使用真机调试时无法使用。具体代码和返回结果如下。
1、调用:uni.preLogin
返回:
{code: 0,errMsg: "preLogin:fail provider not find"}
代码:
uni.preLogin({
provider: 'univerify',
success: (res) => {
console.log(res, 'preLogin success')
},
fail: (res) => {
console.log("preLogin fail res: ", res);
}
})
2、调用:uni.getProvider
返回:['weixin']
代码:
uni.getProvider({
service: 'oauth',
success: function(res) {
console.log(res.provider)
}
});
。
3、调用:uni.login,provider为univerify
返回:{errCode: undefined, errMSG:'login:fail provider not find'}
代码:
uni.login({
provider: 'univerify',
univerifyStyle: {
fullScreen: true
},
success(res) { // 登录成功
uniCloud.callFunction({
name: 'getPhoneNumber', // 你的云函数名称
data: {
'access_token': res.authResult.access_token,
'openid': res.authResult.openid
}
}).then(res => {
console.log(res, 'phone')
// 登录成功,可以关闭一键登录授权界面了
}).catch(err => {
// 处理错误
})
},
fail(res) { // 登录失败
console.log(res.errCode)
console.log(res.errMsg)
}
})
WalteE (作者)
谢谢,解决了这个问题。再重现制作自定义基座后,调用可以弹出手机号授权界面了。
2022-11-08 12:30
WalteE (作者)
能在请教一个问题么,一键登录获取到access_token和openid后。通过uniCloud.callFunction调用云函数,catch到了下方错误
B: [getPhoneNumber]: request:ok
at Function.complete (http://172.20.10.8:8091/source/file:///var/mobile/Containers/Data/Application/3B93D6D3-90A7-41B1-9D52-99DC344733D3/Documents/Pandora/apps/AD2A1F49E6D1A7A8E128F906E2643444/www/pages/login/index.js:1076:21)
at
at Object.So._e [as callback] ()
at $o ()
at Ji ()
at resolve ()
at ln ()
at of.consume ()
at Lc.callback ()
at eN () "err" "uni-app:///pages/login/index.nvue:99"
2022-11-08 12:33
DCloud_云服务_moyang
回复 WalteE: 这个问题目前还存在吗?提供一个报错的云函数日志内容我查查
2022-11-08 16:51
WalteE (作者)
回复 DCloud_云服务_moyang: 你好,没有日志记录。好像是在前端就已经报错了没有调用成功。但是运营商授权的页面已经弹出来了。点击一键登录后报这个错。在一键登录也添加了这个应用,审核通过了。
2022-11-08 19:11