抖音小游戏适配器
抖音小游戏适配器通过 dy 全局对象调用抖音平台 API,提供登录、广告、分享、侧边栏、桌面快捷方式等功能。
类定义
ts
import { DouyinSdk } from "@lingames/clever-sdk/src/platformMini/DouyinSdk.js";
const sdk = new DouyinSdk(platform, project_id, game_id);- 全局对象:
dy - 继承:
CleverSdk
初始化
ts
interface dyInitialize {
sdk_login_url?: string;
}
await sdk.initialize({
sdk_login_url: "https://api.salesagent.cc/game-analyzer/player/login"
});登录
ts
const data = await sdk.login();登录流程:
- 调用
dy.login({ force: false })获取临时登录凭证code - 将
code连同platform: "dou-yin"、project_id发送到 SDK 登录服务器 - 服务器返回
session_key,SDK 自动保存
参考: dy.request
激励视频广告
ts
interface ttCreateRewardedVideoAd {
adUnitId?: string; // 通用广告单元 ID
ttUnitId?: string; // 抖音专用广告 ID
multiton?: boolean; // 是否开启再得广告模式
multitonMessage?: string[]; // 再得广告奖励文案,单个最长 7 字符
multitonTimes?: 1|2|3|4; // 额外观看次数(1-4)
// progressTip?: boolean; // 是否开启进度提醒
}
const reward = await sdk.playRewardedVideo({
ttUnitId: "your_tt_ad_unit_id",
multiton: true,
multitonMessage: ["金币", "钻石"],
multitonTimes: 2
});
// reward.isEnded === true 时发放奖励再得广告模式: 开启后,用户看完广告可继续观看获取额外奖励,multitonMessage 按顺序展示文案。
Banner 广告
ts
interface dyCreateBannerAd {
adUnitId: string; // 广告单元 ID
adIntervals?: number; // 自动刷新间隔(秒),>= 30
style?: BannerStyle; // 广告样式
}
await sdk.createBannerAd({
adUnitId: "banner_id",
adIntervals: 30,
style: { left: 0, top: 100, width: 300, height: 50 }
});分享
ts
interface dyShareAppMessage {
title?: string; // 转发标题
description?: string; // 分享文案
imageUrl?: string; // 转发图片链接
query?: string; // 查询字符串
imageUrlId?: string; // 审核通过的图片编号
toCurrentGroup?: boolean;
path?: string;
}
const success = await sdk.shareAppMessage({
title: "分享标题",
description: "分享描述",
imageUrl: "https://example.com/share.png"
});侧边栏检测
ts
interface CheckSceneResult {
isSupport: boolean; // 是否支持侧边栏
isScene: boolean; // 当前是否在侧边栏场景中
}
const result = await sdk.checkScene();
// result.isSupport === true && result.isScene === true 表示从侧边栏进入参考: dy.checkScene
桌面快捷方式
检查是否已添加
ts
const status = await sdk.checkShortcut();
// status.isSupport — 是否支持添加到桌面
// status.exist — 是否已添加
// status.needUpdate — 是否需要更新参考: dy.checkShortcut
添加到桌面
ts
await sdk.addShortcut({
// 平台特定参数
});参考: dy.addShortcut
设为常用
ts
await sdk.addCommonUse();事件上报
抖音适配器重写了 reportEvent,直接通过 dy.request 发送事件到上报服务器:
ts
await sdk.reportEvent("event_id", { key: "value" });