更新记录
1.0.0(2026-04-11) 下载此版本
初次提交
平台兼容性
uni-app x(4.65)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | 5.0 | 12 | √ | × |
laoqianjunzi-qq
laoqianjunzi-qq 是一个面向 uni-app x 的 QQ 授权桥接插件,覆盖 app-android、app-ios、app-harmony、web、mp-weixin 五端目录结构,并在原生能力不足的平台保留占位实现以保证编译稳定。
插件简介
- 提供 QQ 初始化、登录、资料读取、分享、退出会话能力。
- Android 与 iOS 使用 QQ 官方开放能力完成登录与分享。
- Harmony 支持授权码登录与 Ark 分享参数透传。
- Web 与微信小程序端保留同名 API,用于统一业务层调用方式。
安装方法
- 将插件放入项目的
uni_modules/laoqianjunzi-qq目录。 - Android 端使用自定义基座或云打包验证原生能力。
- iOS 端在项目配置中补充 QQ 互联要求的 URL Scheme 与 Universal Link。
- Harmony 端确认应用侧已按 QQ 互联要求配置回调
scheme、host与网络权限。
快速开始示例
import { getQqBridge } from '@/uni_modules/laoqianjunzi-qq'
const qqBridge = getQqBridge()
qqBridge.setPrivacyConsent(true)
qqBridge.initialize({
appKey: '你的 QQ AppID',
linkDomain: 'https://你的 universal-link 域名/',
success: () => {
console.log('初始化成功')
},
fail: (error) => {
console.log('初始化失败', error.errCode, error.errMsg)
},
complete: () => {}
})
qqBridge.signIn({
success: (session) => {
console.log('sessionToken', session.sessionToken)
console.log('oneTimeCode', session.oneTimeCode)
},
fail: (error) => {
console.log('登录失败', error.errMsg)
},
complete: () => {}
})
完整 API 说明
getQqBridge(): QqBridgePort
获取插件实例。推荐在页面 onLoad 或业务模块初始化时调用一次并复用。
hasPrivacyConsent(): boolean
读取当前隐私授权状态。
setPrivacyConsent(consentGranted: boolean): void
写入隐私授权状态。Android 与 iOS 在调用初始化或登录前建议先显式设置为 true。
isQqAvailable(): boolean
判断当前设备是否可用 QQ 客户端。Web 与微信小程序端固定返回 false。
initialize(options: QqBridgeInitializeOptions): void
初始化插件。
参数说明:
appKey: QQ 互联申请得到的 AppID。linkDomain: iOS 端必填,其他平台可传null。success: 初始化成功回调。fail: 初始化失败回调。complete: 初始化结束回调。
signIn(options: QqBridgeSignInOptions): void
发起 QQ 登录。
成功回调返回:
sessionToken: Android 与 iOS 返回accessToken。expiresAt: Android 与 iOS 返回过期时间。accountId: Android 与 iOS 返回openId。oneTimeCode: Harmony 返回授权码,需要服务端换取正式票据。
readProfile(options: QqBridgeProfileOptions): void
读取 QQ 用户资料。
- Android 与 iOS:成功时返回
profile: Map<string, any>。 - Harmony、Web、微信小程序:返回占位错误。
share(options: QqBridgeShareOptions): void
发送 QQ 分享。
参数说明:
shareMode:0文本、1图片、2视频、3网页、4音乐。targetScene:0QQ 好友、1QQ 空间。headline: 分享标题或文本内容。summary: 非文本分享的摘要信息。localImage: 图片分享使用的本地图片。previewImage: iOS 多媒体分享时使用的预览图。videoLink: 视频分享地址。musicLink: 音乐分享地址。pageLink: 网页分享地址。harmonyPayload: Harmony Ark 分享用 JSON 字符串。harmonyTimestamp: Harmony 分享时间戳。harmonyNonce: Harmony 分享随机数。harmonySignature: Harmony 分享签名。harmonyOpenId: Harmony 端可选 openId。
signOut(options: QqBridgeSignOutOptions): void
退出当前 QQ 会话。
- Android 与 iOS:执行原生退出。
- Harmony、Web、微信小程序:返回占位错误。
各端注意事项
Android
- 需要自定义基座或云打包才能验证插件能力。
- 项目侧应配置 QQ 回调
scheme与分享中转 Activity。 - 插件内部已按 Android 端需要接入 QQ 官方 jar 包。
iOS
initialize时必须传入linkDomain。- 项目侧需配置
CFBundleURLSchemes,格式为tencent + AppID。 - 请确认应用侧已完成 Universal Link 与查询 Scheme 配置。
Harmony
- 登录成功返回的是
oneTimeCode,需由服务端换取正式票据。 - 目前仅支持文本与图片的 Ark 分享模型。
- 资料读取与退出会话暂时没有官方开放能力,插件返回占位错误。
Web
- 当前目录仅保留占位 API,不提供 QQ 原生能力。
- 可用于统一业务代码结构与编译通过。
微信小程序
- 当前目录仅保留占位 API,不提供 QQ 原生能力。
- 如果业务确有需要,建议在业务层单独接入微信小程序登录方案。
常见问题
1. 为什么调用后提示插件未初始化?
请先执行 setPrivacyConsent(true),再调用 initialize。
2. 为什么 Web 或微信小程序端直接失败?
这两个平台没有 QQ 官方原生开放能力,当前实现只负责统一接口与避免编译报错。
3. Harmony 为什么没有直接返回 accessToken?
Harmony 端 QQ SDK 返回的是授权码模式,需要你在服务端换取完整登录票据。
4. iOS 分享为什么要求预览图?
多媒体分享在 iOS 侧需要预览图才能保证 QQ SDK 构造分享对象成功。
5. Android 或 iOS 上找不到插件方法怎么办?
请确认当前运行的是自定义基座或原生打包产物,标准基座不会自动包含原生插件依赖。

收藏人数:
https://gitee.com/laoqianjunzi/laoqianjunzi-qq
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 1129
赞赏 2
下载 11558299
赞赏 1904
赞赏
京公网安备:11010802035340号