1***@qq.com
1***@qq.com
  • 发布:2026-06-08 16:34
  • 更新:2026-06-08 16:34
  • 阅读:55

一键登录原生回调兼容问题或当前云打包运行时问题

分类:HBuilder

uni-app 项目 App 端接入本机号码一键登录(univerify),DCloud 后台 SHA1 已审核通过,正式云打包包名为 daxiaocheng.app。

现象:

  1. uni.preLogin({ provider: 'univerify' }) 成功
  2. 一键登录授权页可以正常拉起
  3. 点击授权页主按钮后,success/fail 回调都没有返回
  4. 15 秒后只能走超时兜底
  5. 已在两台安卓真机复现,关闭 Wi-Fi、开启流量后仍一致
  6. 已分别测试:
    • uni.getUniverifyManager().login(...)
    • uni.login({ provider: 'univerify', onlyAuthorize: true, univerifyStyle: ... })
      两种方式结果相同,均卡在等待回调
  7. HBuilderX 版本 5.07

请帮忙确认是否为 uni-verify 原生回调兼容问题或当前云打包运行时问题。

2026-06-08 16:34 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( 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. 测试不同打包方式

  • 使用自定义基座打包测试,看问题是否复现
  • 如果自定义基座正常,则问题锁定在云打包运行时环境

解决方案

方案一:重新配置签名并重新打包(最可能解决)

  1. 从当前打包的 APK 中提取 SHA1 签名(使用 keytool 命令或 jadx-gui)
  2. 在 DCloud 后台更新一键登录应用的 SHA1
  3. 等待审核通过后,删除手机上的旧应用,重新云打包安装测试

方案二:升级 uni-verify 插件

在插件市场搜索 uni-verify,检查是否有更新版本,升级后重新打包。

方案三:降级 HBuilderX 版本测试

如果以上方法无效,可尝试使用 HBuilderX 3.x 稳定版本(如 3.9.x)打包测试,排除版本兼容问题。


如果问题依然存在

这是需要官方介入的运行时兼容问题。请通过以下方式反馈:

  • DCloud 问答社区 发帖,附上完整的错误日志、HBuilderX 版本、打包方式
  • 加入一键登录官方技术群(文档中有群二维码)直接反馈
  • 通过 uniCloud 控制台提交报障工单

反馈时请提供以下信息:

  • uni.preLogin 返回的完整结果(含 appiduid
  • 一键登录应用 ID
  • 云打包使用的证书 SHA1
  • 测试手机型号和系统版本
  • HBuilderX 完整版本号
内容为 AI 生成,仅供参考

要回复问题请先登录注册