欢迎到专业群( uniCloud 官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。
根据你描述的现象,这是一个典型的 uni-verify 原生回调兼容问题,与云打包运行时环境相关。以下是排查和解决步骤:
核心原因分析
你遇到的问题是:一键登录授权页正常拉起,但点击授权按钮后 success/fail 回调均不触发,最终只能走超时兜底。这通常是因为运营商 SDK 的回调机制与当前云打包运行时存在兼容性问题,导致原生层无法正确回传结果给 JS 层。
排查步骤
1. 确认一键登录应用配置是否与当前打包证书匹配
这是最常见的回调丢失原因。你的包名是 daxiaocheng.app,请检查:
- 登录 DCloud 开发者后台,进入"一键登录"应用管理
- 确认当前应用的 Android 包名 是否为
daxiaocheng.app
- 确认填写的 SHA1 签名 是否与当前云打包使用的证书完全一致(注意:同一个包名在不同电脑或不同证书下打包,SHA1 会不同)
- 如果之前删除重建过一键登录应用,应用 ID 会变化,必须使用新 ID 重新打包
如果签名不匹配,运营商 SDK 会静默失败,不触发任何回调。
2. 确认 uni-verify 模块版本
在 HBuilderX 5.07 中,检查 uni_modules/uni-verify/ 目录下的版本。如果是旧版本,可能存在回调兼容问题。
3. 使用 univerifyManager 方式并监听更多事件
const univerifyManager = uni.getUniverifyManager()
// 预登录
univerifyManager.preLogin()
// 调用一键登录
univerifyManager.login({
univerifyStyle: {
fullScreen: false
},
success(res) {
console.log('login success', res)
},
fail(err) {
console.log('login fail', err)
},
complete(res) {
console.log('login complete', res)
}
})
本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码
4. 抓取错误日志
在调用一键登录前,添加全局错误监听:
// 监听未捕获的 Promise 错误
window.addEventListener('unhandledrejection', event => {
console.log('unhandledrejection:', event.reason)
})
本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码
5. 测试不同打包方式
- 使用自定义基座打包测试,看问题是否复现
- 如果自定义基座正常,则问题锁定在云打包运行时环境
解决方案
方案一:重新配置签名并重新打包(最可能解决)
- 从当前打包的 APK 中提取 SHA1 签名(使用
keytool 命令或 jadx-gui)
- 在 DCloud 后台更新一键登录应用的 SHA1
- 等待审核通过后,删除手机上的旧应用,重新云打包安装测试
方案二:升级 uni-verify 插件
在插件市场搜索 uni-verify,检查是否有更新版本,升级后重新打包。
方案三:降级 HBuilderX 版本测试
如果以上方法无效,可尝试使用 HBuilderX 3.x 稳定版本(如 3.9.x)打包测试,排除版本兼容问题。
如果问题依然存在
这是需要官方介入的运行时兼容问题。请通过以下方式反馈:
- 在 DCloud 问答社区 发帖,附上完整的错误日志、HBuilderX 版本、打包方式
- 加入一键登录官方技术群(文档中有群二维码)直接反馈
- 通过 uniCloud 控制台提交报障工单
反馈时请提供以下信息:
uni.preLogin 返回的完整结果(含 appid 和 uid)
- 一键登录应用 ID
- 云打包使用的证书 SHA1
- 测试手机型号和系统版本
- HBuilderX 完整版本号
1 个回复
Ask小助手 - Ask社区AI助手
根据你描述的现象,这是一个典型的 uni-verify 原生回调兼容问题,与云打包运行时环境相关。以下是排查和解决步骤:
核心原因分析
你遇到的问题是:一键登录授权页正常拉起,但点击授权按钮后
success/fail回调均不触发,最终只能走超时兜底。这通常是因为运营商 SDK 的回调机制与当前云打包运行时存在兼容性问题,导致原生层无法正确回传结果给 JS 层。排查步骤
1. 确认一键登录应用配置是否与当前打包证书匹配
这是最常见的回调丢失原因。你的包名是
daxiaocheng.app,请检查:daxiaocheng.app如果签名不匹配,运营商 SDK 会静默失败,不触发任何回调。
2. 确认 uni-verify 模块版本
在 HBuilderX 5.07 中,检查
uni_modules/uni-verify/目录下的版本。如果是旧版本,可能存在回调兼容问题。3. 使用 univerifyManager 方式并监听更多事件
4. 抓取错误日志
在调用一键登录前,添加全局错误监听:
5. 测试不同打包方式
解决方案
方案一:重新配置签名并重新打包(最可能解决)
keytool命令或 jadx-gui)方案二:升级 uni-verify 插件
在插件市场搜索
uni-verify,检查是否有更新版本,升级后重新打包。方案三:降级 HBuilderX 版本测试
如果以上方法无效,可尝试使用 HBuilderX 3.x 稳定版本(如 3.9.x)打包测试,排除版本兼容问题。
如果问题依然存在
这是需要官方介入的运行时兼容问题。请通过以下方式反馈:
反馈时请提供以下信息:
uni.preLogin返回的完整结果(含appid和uid)要回复问题请先登录或注册
公告
更多>相关问题