更新记录

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-androidapp-iosapp-harmonywebmp-weixin 五端目录结构,并在原生能力不足的平台保留占位实现以保证编译稳定。

插件简介

  • 提供 QQ 初始化、登录、资料读取、分享、退出会话能力。
  • Android 与 iOS 使用 QQ 官方开放能力完成登录与分享。
  • Harmony 支持授权码登录与 Ark 分享参数透传。
  • Web 与微信小程序端保留同名 API,用于统一业务层调用方式。

安装方法

  1. 将插件放入项目的 uni_modules/laoqianjunzi-qq 目录。
  2. Android 端使用自定义基座或云打包验证原生能力。
  3. iOS 端在项目配置中补充 QQ 互联要求的 URL Scheme 与 Universal Link。
  4. Harmony 端确认应用侧已按 QQ 互联要求配置回调 schemehost 与网络权限。

快速开始示例

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: 0 QQ 好友、1 QQ 空间。
  • 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 上找不到插件方法怎么办?

请确认当前运行的是自定义基座或原生打包产物,标准基座不会自动包含原生插件依赖。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。