Mini Games SDK 概述
Mini Games SDK 是一个客户端 JavaScript SDK,在 TikTok 应用内运行。它提供应用内功能,例如登录与授权、支付、UI 触发、奖励性广告、生命周期钩子、网络通信和能力检测。Mini Games SDK 中包含的 JavaScript API 以 TTMinis.game 为前缀。
TikTok 支持两种小游戏运行时:HTML 和 Native。Mini Games SDK 已经预加载到 TikTok 应用中,因此你的小游戏使用 HTML 运行时,只需初始化 SDK。
- HTML:基于 Web 的构建,使用 HTML/CSS/JavaScript 在 WebView 中运行,上线速度快但性能有限。调用 JavaScript API 之前,请在你的 HTML 中初始化 Mini Games SDK。
- Native:编译后的小游戏,在 TikTok 的原生运行时中运行,性能优化,游戏体验更流畅。JavaScript API 无需初始化,可直接调用。
以下是 Mini Games SDK 中包含的 JavaScript API 列表:
类别 | 函数 | 描述 |
基础工具 |
| 检查当前客户端版本是否支持某个 JSAPI 功能 |
| 提供用户数据目录的本地文件系统路径 | |
| 发起 HTTPS 网络请求 | |
| 取消正在进行中的网络请求 | |
数据缓存 |
| 异步保存键值对到本地缓存 |
| 同步保存键值对到本地缓存 | |
| 异步从本地缓存中获取值 | |
| 同步从本地缓存中获取值 | |
| 异步从本地缓存中移除键值对 | |
| 同步从本地缓存中移除键值对 | |
| 异步清除小游戏的所有缓存数据 | |
| 同步清除小游戏的所有缓存数据 | |
| 异步获取当前存储的相关信息 | |
| 同步获取当前存储的相关信息 | |
设备与网络 |
| 显示用于文字输入的键盘,可自定义类型和按钮 |
| 在键盘激活时更新输入框内容 | |
| 手动隐藏激活的键盘 | |
| 注册实时键盘输入事件监听器 | |
| 移除键盘输入事件监听器 | |
| 注册键盘高度变化事件监听器 | |
| 移除键盘高度变化事件监听器 | |
| 注册用户点击【确认】按钮事件监听器 | |
| 移除键盘【确认】按钮事件监听器 | |
| 注册键盘收起事件监听器 | |
| 移除键盘收起事件监听器 | |
| 获取用户当前的网络类型(例如 'wifi' 或 '4g') | |
| 注册触摸事件开始的监听器 | |
| 注册触摸事件移动的监听器 | |
| 注册触摸事件结束的监听器 | |
| 注册触摸事件被中断的监听器 | |
| 移除 `onTouchStart` 事件监听器 | |
| 移除 `onTouchMove` 事件监听器 | |
| 移除 `onTouchEnd` 事件监听器 | |
| 移除 `onTouchCancel` 事件监听器 | |
| 使手机振动 15 毫秒 | |
| 使手机振动 400 毫秒 | |
事件 |
| 注册小游戏返回前台时的回调函数。 |
| 注销 `onShow` 事件的回调函数 | |
| 注册小游戏被切至后台时的回调函数。 | |
| 注销 `onHide` 事件的回调函数 | |
| 获取小游戏首次冷启动时的查询参数 | |
| 获取用户最近一次打开小游戏时的查询参数 | |
文件 |
| 返回用于执行文件系统操作的全局管理器 |
| 异步读取本地文件内容 | |
| 同步读取本地文件内容 | |
| 异步检查文件或目录是否存在 | |
| 同步检查文件或目录是否存在 | |
| 异步写入数据到本地文件 | |
| 同步写入数据到本地文件 | |
| 异步创建新目录 | |
| 同步创建新目录 | |
| 异步复制文件到新位置 | |
| 同步复制文件到新位置 | |
| 解压文件 | |
应用内广告 |
| 使用广告单元 ID 创建奖励性视频广告实例 |
| 展示已加载的奖励性视频广告 | |
| 注册奖励性广告关闭事件的监听器 | |
| 注销奖励性广告关闭事件的监听器 | |
| 注册用于接收广告播放期间发生的错误的监听器 | |
| 注销广告播放期间错误事件的监听器 | |
| 使用广告单元 ID 创建插屏广告实例 | |
| 展示已加载的插屏广告 | |
| 注册插屏广告关闭事件的监听器 | |
| 注销插屏广告关闭事件的监听器 | |
| 注册用于接收广告播放期间发生的错误的监听器 | |
| 注销广告播放期间错误事件的监听器 | |
应用内购买 |
| 检查用户的活力豆余额是否达到指定数量 |
| 为指定 tier ID 发起客户端充值流程 | |
| 通过 `trade_order_id` 触发客户端支付弹窗 | |
| 引导用户进入 TikTok 内的活力豆余额页面 | |
登录与授权 |
| 启动用于获取授权码的静默登录流程 |
| 提示用户授予特定范围的权限 | |
媒体 |
| 创建用于简单音频播放的实例 |
| 创建用于高级音频合成与处理的实例 | |
| 用于开始、暂停或停止音频播放的控件 | |
| 跳转到指定时间位置(单位:秒) | |
| 销毁音频实例并释放资源 | |
| 管理开始/恢复播放事件的监听器 | |
| 管理音频暂停事件的监听器 | |
| 管理音频停止事件的监听器 | |
| 管理自然播放结束事件的监听器 | |
| 管理音频缓冲可播放事件的监听器 | |
| 管理音频播放进度更新的监听器 | |
| 管理拖拽进度开始和结束的监听器。 | |
| 管理因缓冲导致播放卡顿的监听器 | |
| 管理错误事件的监听器(返回 | |
| 异步将 | |
| 恢复或暂停整个音频上下文(返回 Promise) | |
| 关闭上下文并立即释放所有资源 | |
| 创建一个指定通道数和长度的空 | |
| 创建用于播放 | |
| 创建用于控制音量的节点 | |
| 创建用于生成周期性波形的节点 | |
| 创建用于延迟输入音频信号的节点 | |
| 创建用于频率滤波(低通、高通等)的节点 | |
| 创建用于实时时域和频域分析的节点 | |
| 创建用于在三维空间实现音频空间化的节点 | |
| 创建用于信号压缩(阈值、拐点等)的节点 | |
| 创建用于非线性失真特效的节点 | |
| 将多个输入流合并为一个输出 | |
| 将输入流拆分为独立的通道输出 | |
| 创建用于自定义 JavaScript 音频处理的节点 | |
渲染与画布 |
| 创建用于绘图的画布元素(首次调用将创建屏幕画布) |
| 创建用于加载和渲染图片源的图片对象 | |
| 从画布对象获取绘图上下文('2d' 或 'webgl') | |
| 将画布内容导出为 base64 编码的数据 URI 字符串 | |
| 修改渲染帧率 | |
| 加载用于渲染的自定义字体文件 | |
回归奖励 |
| 引导用户将小游戏添加到 TikTok 主页侧边栏 |
| 检查用户是否符合完成主页入口任务的奖励资格 | |
| 提示用户将快捷方式添加到设备主屏幕 | |
| 检查用户是否可以领取添加快捷方式的奖励 | |
分享 |
| 将 Minis 内容直接分享到用户的 TikTok 限时动态 |
| 触发联系人选择界面以发送私信 | |
| 监听“复制链接”操作,用于注入自定义元数据 | |
| 移除“复制链接”事件的监听器 | |
分包加载 |
| 后台下载分包但不执行 |
| 下载并立即执行分包内的代码 | |
| 监听分包下载任务的进度更新 | |
| 注册分包下载进度监听器,接收包含进度百分比的对象 | |
系统 |
| 同步获取设备和系统信息 |
| 异步获取设备和系统信息 | |
| 返回包含当前设备和窗口指标的对象 | |
UI |
| (仅限 HTML 小游戏)获取菜单按钮(右上角胶囊按钮)的布局位置信息 |
WebSocket |
| 创建到指定 WSS URL 的 WebSocket 连接,可自定义请求头、协议和超时时间,并返回 SocketTask。 |
| 关闭 WebSocket 连接,可自定义关闭码和原因,并支持成功/失败/完成回调。 | |
| 注册 WebSocket 连接建立事件监听器,接收响应头和调试配置信息。 | |
| 注册 WebSocket 消息接收监听器,接收服务器数据(字符串或 ArrayBuffer)。 | |
| 注册 WebSocket 关闭事件监听器,接收关闭状态码和原因。 | |
| 注册 WebSocket 错误监听器,接收错误码和错误信息。 | |
| 通过 WebSocket 发送字符串或 ArrayBuffer 数据,并可按需传入成功、失败和完成的回调函数。 |