更新记录
1.0.0(2026-04-11) 下载此版本
初次提交
平台兼容性
uni-app x(5.06)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | 16.0 | 12 | √ | - |
laoqianjunzi-douyin
laoqianjunzi-douyin 是一个面向 uni-app x 的抖音授权登录插件,当前提供五端目录结构:app-android、app-ios、app-harmony、mp-weixin、web。其中 Android、iOS、Harmony 提供实际授权能力,微信小程序与 Web 保留可编译占位实现。
插件简介
- 目标能力:初始化抖音开放能力、检测客户端、发起授权并拿到授权码。
- 适用场景:移动端唤起抖音客户端完成登录,再把
authCode交给服务端换取用户令牌。 - 代码组织:各平台逻辑均位于
utssdk/<platform>/index.uts,没有集中式总入口文件。 - 编译策略:不支持实际能力的平台保留空实现与失败回调,保证项目可正常编译。
安装方法
- 将
uni_modules/laoqianjunzi-douyin放入项目。 - 重新生成自定义基座或执行原生云打包。
- 在抖音开放平台创建移动应用并准备
ClientKey。
Android 配置
- 插件已内置 Android 依赖声明与回调 Activity。
- 需要在抖音开放平台中正确配置包名与签名。
iOS 配置
- 编辑
uni_modules/laoqianjunzi-douyin/utssdk/app-ios/Info.plist。 - 将
DouyinAppID与CFBundleURLSchemes中的占位文本替换为你的ClientKey。 - 保留
LSApplicationQueriesSchemes中的抖音 scheme,便于检测客户端与回调。
Harmony 配置
- 插件已声明
@douyin/opensdk-common-external依赖。 - 业务侧还需要在
module.json5中补充可回跳的uri配置。 - Harmony 发起登录时必须传入
redirectLink。
快速开始示例
import { useLaoqianjunziDouyin } from '@/uni_modules/laoqianjunzi-douyin'
const douyinPortal = useLaoqianjunziDouyin()
douyinPortal.warmup({
clientKey: '你的 ClientKey',
success: () => {
console.log('抖音初始化完成')
},
fail: (error) => {
console.log('初始化失败', error.errMsg)
},
complete: null
})
douyinPortal.requestTicket({
nonceState: 'demo-state',
redirectLink: 'your-app://callback',
scopes: ['user_info'],
success: (payload) => {
console.log('authCode=', payload.authCode)
},
fail: (error) => {
console.log('授权失败', error.errMsg)
},
complete: null
})
完整 API 说明
useLaoqianjunziDouyin(): LqjDyPortal
返回插件门户对象。
portal.hasClient(): boolean
- Android / iOS:返回当前设备是否安装抖音客户端。
- Harmony / mp-weixin / web:当前版本仅返回占位结果。
portal.warmup(options: LqjDyBootOptions): void
初始化抖音开放能力。
LqjDyBootOptions 字段说明:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
clientKey |
string |
是 | 抖音开放平台申请的 ClientKey |
success |
function \| null |
否 | 初始化成功回调 |
fail |
function \| null |
否 | 初始化失败回调 |
complete |
function \| null |
否 | 初始化结束回调 |
portal.requestTicket(options: LqjDyAuthOptions): void
拉起抖音客户端,请求授权码。
LqjDyAuthOptions 字段说明:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
nonceState |
string \| null |
否 | 用于透传业务状态 |
redirectLink |
string \| null |
Harmony 必填 | Harmony 回跳地址 |
scopes |
string[] \| null |
否 | 权限列表,默认使用 user_info |
success |
function \| null |
否 | 成功时返回 authCode 与 nonceState |
fail |
function \| null |
否 | 失败回调,错误对象实现 IUniError |
complete |
function \| null |
否 | 结束回调 |
LqjDyAuthSuccess
| 字段 | 类型 | 说明 |
|---|---|---|
authCode |
string |
用于服务端换取访问凭证 |
nonceState |
string |
抖音回传的 state |
各端注意事项
app-android:建议使用真机与自定义基座验证回调流程。app-ios:请先完成Info.plist中的ClientKey替换,再测试授权。app-harmony:除了ClientKey,还需要保证redirectLink与应用回跳配置一致。mp-weixin:当前仅保留编译占位,不会真正发起抖音登录。web:当前仅保留编译占位,不会真正发起抖音登录。
常见问题
1. 为什么初始化成功后仍然无法授权?
通常是抖音开放平台的包名、签名、URL Scheme 或 Harmony 回跳地址没有配置正确,优先检查平台侧配置是否与应用信息一致。
2. 为什么 Web 与微信小程序端会直接失败?
这两个平台目录目前只负责兜底编译。实际抖音移动授权流程依赖移动端客户端回跳,因此返回的是明确的占位错误。
3. authCode 有什么作用?
authCode 只是第一步授权结果,真正的令牌与用户信息应由你的服务端向抖音开放接口换取。
4. 为什么必须重新打包基座?
插件接入了原生开放 SDK、Android Manifest 与 iOS 配置,普通热刷新无法覆盖这类原生变更。

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