更新记录

1.0.0(2026-09-29)

支持 安卓/iOS TikTok OpenSDK


平台兼容性

uni-app(5.0)

Vue2 Vue2插件版本 Vue3 Vue3插件版本 Chrome Safari app-vue app-vue插件版本 app-nvue app-nvue插件版本 Android Android插件版本 iOS iOS插件版本 鸿蒙
√ 1.0.0 √ 1.0.0 × × √ 1.0.0 √ 1.0.0 5.0 1.0.0 12 1.0.0 ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(5.0)

Chrome Safari Android Android插件版本 iOS iOS插件版本 鸿蒙 微信小程序
× × 5.0 1.0.0 12 1.0.0 × ×

tt-tiktok-sdk

TikTok OpenSDK UTS 插件,为 uni-app / uni-app x 提供 TikTok 登录、安装检测及图片/视频分享能力。

目录

SDK 版本

平台 SDK 版本 最低系统 支持状态
Android 2.2.0 Android 5.0 / API 21 ✅ 支持
iOS 2.5.0 iOS 12.0 ✅ 支持
HarmonyOS - - ❌ 不支持

重要提示

  • 必须使用 App 真机和自定义基座或云打包运行。
  • 需要先在 TikTok for Developers 添加 Login Kit;使用分享功能时还需添加 Share Kit。
  • redirectUri 必须与 TikTok 开放平台配置完全一致。
  • 登录返回的 code 和 codeVerifier 应发送到服务端换取 token,Client Secret 不要写入 App。
  • 修改原生配置后需要重新制作自定义基座或重新云打包。

环境配置

前置条件

  1. 在 TikTok for Developers 创建应用并获取 Client Key。
  2. 配置 Android 包名、签名和 iOS Bundle ID。
  3. 添加 Login Kit / Share Kit,并申请业务需要的 scopes。
  4. 配置 HTTPS Redirect URI。

iOS 配置

编辑插件内的 uni_modules/tt-tiktok-sdk/utssdk/app-ios/Info.plist,将两处 your_client_key 替换为实际 Client Key:

<key>TikTokClientKey</key>
<string>你的 Client Key</string>

<key>CFBundleURLSchemes</key>
<array>
    <string>你的 Client Key</string>
</array>

同时在应用签名能力中配置与 Redirect URI 域名对应的 Associated Domains:

applinks:example.com

iOS 的 Redirect URI 必须是已正确配置的 Universal Link。

Android 配置

插件已经配置 OpenSDK 依赖、网络权限、TikTok 包可见性和回调 Activity。

如果使用自己的 Redirect URI,请修改插件内的 uni_modules/tt-tiktok-sdk/utssdk/app-android/AndroidManifest.xml:

<data
    android:scheme="https"
    android:host="example.com"
    android:pathPrefix="/tiktok/callback" />

同时确保该域名的 App Link / Digital Asset Links 已正确配置。

快速开始

获取并初始化 SDK

import * as tiktok from '@/uni_modules/tt-tiktok-sdk'

const sdk = tiktok.getTTTikTokSDK()

sdk.register({
  clientKey: '你的 Client Key',
  success: () => {
    console.log('TikTok SDK 初始化成功')
  },
  fail: (error) => {
    console.error('初始化失败', error)
  }
})

功能介绍

检测 TikTok 是否安装

const installed = sdk.isTikTokInstalled()
console.log('TikTok 是否安装:', installed)

TikTok 登录

sdk.login({
  redirectUri: 'https://example.com/tiktok/callback',
  scopes: ['user.info.basic'],
  state: Date.now().toString(),
  authMethod: 'tiktokApp',
  success: (result) => {
    console.log('授权 code:', result.code)
    console.log('PKCE codeVerifier:', result.codeVerifier)
    console.log('已授权权限:', result.grantedPermissions)
  },
  fail: (error) => {
    console.error('登录失败', error)
  }
})

authMethod 支持:

  • tiktokApp:优先使用 TikTok App 授权。
  • chromeTab:Android 使用浏览器授权,iOS 使用 Web Auth。

分享图片或视频

Android 使用本地绝对路径或 content:// URI:

sdk.share({
  mediaType: 'video',
  mediaPaths: ['/storage/emulated/0/Movies/demo.mp4'],
  redirectUri: 'https://example.com/tiktok/callback',
  success: (result) => {
    console.log('分享成功', result.state)
  },
  fail: (error) => {
    console.error('分享失败', error)
  }
})

iOS 使用系统相册资源的 PHAsset.localIdentifier:

sdk.share({
  mediaType: 'image',
  mediaPaths: ['PHAsset.localIdentifier'],
  redirectUri: 'https://example.com/tiktok/callback',
  format: 'normal',
  success: (result) => {
    console.log('分享成功', result.state)
  },
  fail: (error) => {
    console.error('分享失败', error)
  }
})

format 支持:

  • normal:普通分享,默认值。
  • greenScreen:绿幕分享,只能传入一个媒体。

API

getTTTikTokSDK()

获取 SDK 单例。

register(options)

参数 类型 必填 说明
clientKey string 是 TikTok Client Key
success callback 否 初始化成功回调
fail callback 否 初始化失败回调
complete callback 否 完成回调

isTikTokInstalled()

同步返回 TikTok 是否安装,返回类型为 boolean。

login(options)

参数 类型 必填 说明
redirectUri string 是 TikTok 后台配置的 Redirect URI
scopes string[] 否 默认 ['user.info.basic']
state string 否 登录请求标识
authMethod 'tiktokApp' \| 'chromeTab' 否 默认 tiktokApp
language string 否 仅 Android 生效
success callback 否 登录成功回调
fail callback 否 登录失败回调
complete callback 否 完成回调

成功结果包含:

字段 类型 说明
code string 授权码
codeVerifier string PKCE 验证参数
state string 登录请求标识
grantedPermissions string[] 用户实际授权的权限

share(options)

参数 类型 必填 说明
mediaType 'image' \| 'video' 是 媒体类型
mediaPaths string[] 是 Android 文件路径/URI;iOS 相册资源 ID
redirectUri string 是 TikTok 后台配置的 Redirect URI
format 'normal' \| 'greenScreen' 否 默认 normal
state string 否 分享请求标识
success callback 否 分享成功回调
fail callback 否 分享失败回调
complete callback 否 完成回调

错误码

错误码 说明
101 SDK 未初始化
102 无法获取当前原生页面
103 参数或原生配置无效
104 OpenSDK 请求未能启动
105 已有同类型请求正在进行
201 TikTok 登录失败
301 TikTok 分享失败

TikTok 原生 SDK 的错误码也可能直接通过 errCode 返回。

常见问题

登录后无法返回 App

  • 确认 Redirect URI 与 TikTok 后台配置完全一致。
  • Android 检查 App Link 和 AndroidManifest.xml。
  • iOS 检查 Universal Link、Associated Domains 和 Client Key。

iOS 分享失败

iOS 只能传入照片库资源的 PHAsset.localIdentifier,不能传普通文件路径。

修改配置后没有生效

删除旧构建缓存,并重新制作自定义基座或重新云打包。

官方文档

隐私、权限声明

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

无

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

无

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

无