更新记录

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-androidapp-iosapp-harmonymp-weixinweb。其中 Android、iOS、Harmony 提供实际授权能力,微信小程序与 Web 保留可编译占位实现。

插件简介

  • 目标能力:初始化抖音开放能力、检测客户端、发起授权并拿到授权码。
  • 适用场景:移动端唤起抖音客户端完成登录,再把 authCode 交给服务端换取用户令牌。
  • 代码组织:各平台逻辑均位于 utssdk/<platform>/index.uts,没有集中式总入口文件。
  • 编译策略:不支持实际能力的平台保留空实现与失败回调,保证项目可正常编译。

安装方法

  1. uni_modules/laoqianjunzi-douyin 放入项目。
  2. 重新生成自定义基座或执行原生云打包。
  3. 在抖音开放平台创建移动应用并准备 ClientKey

Android 配置

  • 插件已内置 Android 依赖声明与回调 Activity。
  • 需要在抖音开放平台中正确配置包名与签名。

iOS 配置

  • 编辑 uni_modules/laoqianjunzi-douyin/utssdk/app-ios/Info.plist
  • DouyinAppIDCFBundleURLSchemes 中的占位文本替换为你的 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 成功时返回 authCodenonceState
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 配置,普通热刷新无法覆盖这类原生变更。

隐私、权限声明

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

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

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

插件不采集任何数据

许可协议

MIT协议

暂无用户评论。