更新记录
1.0.0(2026-04-09)
版本1.0.0 实现android手机端唤起微信客户端微信登录并获取微信返回Code
平台兼容性
uni-app(5.06)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | × | × | √ | - | 11.0 | × | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | - | - | - | - |
uni-app x(5.06)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | 11.0 | × | × | × |
codingx-we ch at
codingx-we ch at 是一个面向 uni-app / uni-app x Android 平台的 UTS 微信登录插件,当前主要提供以下能力:
- 注册 App 到微信
- 检测微信是否安装
- 发起微信授权登录
- 读取微信登录回调结果
- 一键发起微信登录并等待返回结果
当前插件仅支持:
App-Androiduni-appuni-app x
当前插件暂不支持:
iOSHarmonyWeb微信小程序
1. 功能概览
插件导出的主要方法如下:
registerAppisWXAppInstalledsendAuthReqconsumeAuthCallbackoneKeyLogin
推荐优先使用:
oneKeyLogin
2. 使用前准备
在接入本插件前,请先完成微信开放平台的准备工作。
2.1 开通微信开放平台移动应用
你需要在微信开放平台完成以下操作:
- 注册并认证微信开放平台账号
- 创建移动应用
- 填写 Android 应用信息
- 提交审核并通过
- 获取你的移动应用
AppID
如果你没有完成这一步,插件即使能正常调用,也无法完成真实登录。
2.2 确认 Android 应用信息一致
微信开放平台里登记的信息需要和你最终安装到手机上的 Android 应用一致,重点包括:
- 包名
- 签名
- 应用已审核通过
如果包名或签名不一致,常见现象包括:
- 拉不起微信
- 回调失败
- 返回签名验证错误
2.3 确认微信客户端已安装
微信登录是基于微信客户端拉起授权完成的,所以测试手机必须安装微信。
3. 安装插件
将插件放入项目目录:
uni_modules/codingx-we chat
插件安装后,目录结构中关键文件如下:
uni_modules/codingx-we chat/
├─ package.json
├─ readme.md
└─ utssdk/
├─ interface.uts
├─ unierror.uts
└─ app-android/
├─ config.json
├─ index.uts
├─ AndroidManifest.xml
├─ CodingxWe chatWXEntryActivity.kt
├─ We chatAuthCallbackResult.kt
└─ We chatAuthCallbackStore.kt
4. 运行前必须知道的限制
4.1 不能直接用标准基座测试微信 SDK
这是最重要的一点。
本插件在 utssdk/app-android/config.json 里通过 dependencies 引入了微信 Android OpenSDK:
{
"minSdkVersion": "21",
"dependencies": ["com.tencent.mm.opensdk:we chat-sdk-android:+"]
}
这意味着:
- 编译时可以识别微信类
- 但标准基座不一定包含这个三方 SDK
- 真机运行时如果还是用标准基座,可能报错:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/tencent/mm/opensdk/openapi/WXAPIFactory;
4.2 正确的调试方式
调试本插件时,请使用以下方式之一:
Android 自定义基座正式打包 APK/AAB
不建议使用:
标准基座直接测试微信登录
5. 第二步:在页面中引入插件
注意:
- 必须从插件根目录引入
- 不要直接引入到
index.uts
错误写法:
import { oneKeyLogin } from '@/uni_modules/codingx-we chat/utssdk/app-android/index.uts'
正确写法:
import { oneKeyLogin } from '@/uni_modules/codingx-we chat'
5.1 示例代码
import { oneKeyLogin } from '@/uni_modules/codingx-we chat'
// 相关weixin的名称需要去除空格后使用(原因:平台有敏感词过滤,所以我在名称间加了空格)
function handleAppWe chatLogin() : void {
oneKeyLogin({
appid: '你的微信开放平台AppID',
scope: 'snsapi_userinfo',
state: 'we chat_login',
timeout: 60000,
success: (res) => {
if (res.errCode == 0 && res.code != null) {
console.log('微信登录成功 code=' + res.code)
console.log('state=' + (res.state ?? ''))
return
}
console.log('微信登录返回 errCode=' + res.errCode)
console.log('微信登录返回 errMsg=' + (res.errMsg ?? ''))
},
fail: (err) => {
console.log('插件调用失败 errCode=' + err.errCode)
console.log('插件调用失败 errMsg=' + err.errMsg)
},
complete: (res) => {
console.log('一键登录 complete', res)
}
})
}
5.2 返回结果说明
success 返回的是微信授权结果:
type OneKeyLoginResult = {
code : string | null,
state : string | null,
errCode : number,
errMsg : string | null,
lang : string | null,
country : string | null
}
解释如下:
code:后端换取微信登录态的关键参数state:你发起登录时携带的状态值errCode:微信返回状态码errMsg:微信返回错误信息lang:微信客户端语言country:微信用户国家/地区
5.3 结果判断规则
建议这样判断:
if (res.errCode == 0 && res.code != null) {
// 登录成功
} else {
// 用户取消 / 拒绝授权 / 其他微信返回错误
}
常见微信登录返回码:
0:用户同意授权-2:用户取消-4:用户拒绝授权

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 15
赞赏 0
下载 11519557
赞赏 1903
赞赏
京公网安备:11010802035340号