Skip to content

平台 SDK 适配层 ​

Clever SDK 通过为各小程序/快游戏/H5/原生APP平台提供统一的 API 接口。每个平台对应一个适配器类,继承自基类 CleverSdk,实现平台特定的登录、广告、分享等功能。

架构概述 ​

CleverSdk (基类)
├── platformMini/
│   ├── WeChatSdk      微信小游戏
│   ├── DouyinSdk      抖音小游戏
│   ├── TiktokSdk      TikTok小游戏
│   ├── KuaiShouSdk    快手小游戏
│   ├── HuaweiSdk      华为快游戏
│   ├── OppoSdk        OPPO 小游戏
│   └── BilibiliSdk    B 站小游戏
├── platformH5/
│   ├── AdSenseSdk     Google AdSense H5
│   ├── AhagameSdk     传音 Ahagame H5
│   ├── MiniGameSDK    微游 Minigame H5
│   └── MockSdk        开发测试 Mock
└── platformNative/
    └── M4399Sdk       4399 APK 原生

所有平台适配器共享相同的接口签名,开发者通过统一 API 调用,SDK 内部自动路由到对应平台的实现。

完整目录 ​

小游戏平台 ​

  • 微信小游戏 — wx 全局对象,支持登录、激励视频、Banner 广告、分享、用户信息
  • 抖音小游戏 — dy 全局对象,支持登录、激励视频、Banner 广告、分享、侧边栏、桌面快捷方式
  • TikTok 小游戏 — TTMinis 全局对象,支持登录、授权、激励视频、Banner 广告、插屏广告、分享、桌面快捷方式、侧边栏检测、入口任务
  • 快手小游戏 — ks 全局对象,支持登录、激励视频、Banner 广告、分享、桌面快捷方式、侧边栏跳转
  • 华为快游戏 — qg 全局对象,支持登录、激励视频、Banner 广告
  • OPPO 小游戏 — qg 全局对象,支持登录、激励视频、Banner 广告、原生广告
  • B 站小游戏 — 继承基类默认实现

H5 平台 ​

  • Google AdSense — 动态加载 AdSense 脚本,支持激励视频、显示/隐藏 Banner
  • 传音 Ahagame — h5sdk 全局对象,支持激励视频、插屏广告、Banner 广告、Athena 埋点上报
  • 微游 Minigame — minigame 全局对象,支持登录、激励视频、插屏广告、Banner 广告、分享、桌面快捷方式、事件上报
  • Mock 测试 — 开发调试用,模拟登录和广告返回

原生平台 ​

  • 4399 APK — jsb.reflection 桥接 Java 层,支持初始化和登录

统一 API 接口 ​

以下是所有平台适配器共有的接口。部分平台可能不支持某些接口,调用时会返回默认值或抛出异常。

初始化 ​

ts
const sdk = new WeChatSdk(platform, project_id, game_id);
await sdk.initialize(config);

登录 ​

ts
const loginData = await sdk.login();
// loginData 包含 open_id / openid、session_key 等平台特定字段

会话检查 ​

ts
const expired = await sdk.checkSession();
// true 表示会话已过期

激励视频广告 ​

ts
const reward = await sdk.playRewardedVideo({
    adUnitId: "your_ad_unit_id"
});
// reward.isEnded === true 表示用户完整观看了广告
// reward.count 表示奖励数量
ts
await sdk.createBannerAd({ adUnitId: "banner_id" });
await sdk.showBannerAd();
await sdk.hideBannerAd();
await sdk.destroyBannerAd();

分享 ​

ts
await sdk.shareAppMessage({
    title: "分享标题",
    imageUrl: "https://example.com/image.png"
});

添加到桌面 ​

ts
await sdk.addShortcut({ title: "游戏名", imageUrl: "icon.png" });
const status = await sdk.checkShortcut();
// status.exist === true 表示已添加到桌面

事件上报 ​

ts
await sdk.reportEvent("event_id", { key: "value" });

功能支持矩阵 ​

小游戏平台 ​

功能微信抖音快手华为OPPOB站
登录✅✅✅✅✅—
激励视频✅✅✅✅✅—
Banner 广告✅✅—✅✅—
原生广告————✅—
分享✅✅✅———
用户信息✅—————
添加到桌面—✅✅———
设为常用—✅✅———
侧边栏检测—✅————
场景跳转——✅———
事件上报—✅✅———
会话检查✅—————
广告效果上报✅✅✅✅✅✅

H5 平台 ​

功能AdSenseAhagameMinigameMock
登录——✅✅
激励视频✅✅✅✅
插屏广告—✅✅—
Banner 广告✅✅✅—
分享——✅—
添加到桌面——✅—
事件上报—✅✅—
会话检查——✅—
语言环境——✅—
加载进度——✅—

原生平台 ​

功能4399 APK
登录✅
激励视频—
Banner 广告—
分享—
事件上报—

类型定义 ​

所有类型定义位于 @lingames/clever-sdk/src/models/ 目录:

类型说明
LoginData登录返回数据(联合类型)
wxLoginData微信登录数据
HuaweiLoginData华为登录数据
OppoLoginDataOPPO 登录数据
VideoReward广告观看奖励结果
CreateBannerAdBanner 广告创建参数(联合类型)
ShareAppMessage分享参数(联合类型)
minigameShareAppMessage微游 Minigame 分享参数
AddShortcut添加桌面快捷方式参数
NavigateToScene场景跳转参数
AdvertiseStage广告效果上报阶段枚举
ReportContext上报上下文信息
SdkInitialize初始化配置(联合类型)
m4399Initialize4399 初始化配置
ggInitializeGoogle AdSense / 传音 Ahagame 初始化配置
minigameInitialize微游 Minigame 初始化配置
mockInitializeMock 测试初始化配置