跳到主要内容

版本更新记录

版本更新记录

如果您之前查看过旧版本(0.0.1)的 SDK 指南,请在此部分确认变更内容。


v0.2.0 (2026-06-24) — 当前版本

新功能

  1. 新增统一激励槽位 API:将激励视频、横幅、分享统一为一个槽位模型。查询活动槽位进行渲染,用户点击时通过 showRewardedAd({ slotId }) 一次调用即可执行。

    // 查询活动槽位
    const { slots } = await TudadaSDK.getRewardedAdSlotsAsync();

    // 执行槽位 (action: REWARD_VIDEO / BANNER / SHARE 自动分发)
    const res = await TudadaSDK.showRewardedAdAsync({ slotId: slots[0].slotId });
    if (res.isEnded) giveReward();
    • 新增:getRewardedAdSlots() / getRewardedAdSlot(slotId)(+ *Async
    • showRewardedAd() 同时接受 slotId(槽位)或 adUnitId(视频回退)
    • 详细指南:Ad API → 统一激励槽位
  2. 新增支付(Payment)API:新增游戏内商品购买 API。游戏仅使用 productId 进行购买,支付方式、价格、验证、发放均由平台处理。

    const products = await TudadaSDK.payment.getProductsAsync();
    const txn = await TudadaSDK.payment.purchaseAsync('coin_100');
    if (txn.status === 'GRANTED') { /* 发放完成 — 最终确认由游戏服务器完成 */ }
    • 拆分为回调版本(payment.getProducts() 等,返回 void)与 Promise 版本(getProductsAsync() 等)
    • 四个方法均提供 *Async 变体:getProductsAsync / getProductAsync / purchaseAsync / getTransactionAsync
    • 错误通过 code 分支(回调版本通过 fail*Async 版本通过 reject)
    • 详细指南:Payment API
  3. SystemInfoAppBaseInfo 新增 servicePlatform 字段:识别游戏运行于哪个宿主服务('kakaotalk' / 'kakaopay' / 'house')。

    const info = TudadaSDK.getSystemInfoSync();
    console.log(info.servicePlatform); // 'kakaotalk' | 'kakaopay' | 'house'

即将弃用 (Deprecated)

  • createRewardedVideoAd (旧版) — wx 兼容旧版实例 API。已由统一 API showRewardedAd() / showRewardedAdAsync() 取代,将在未来版本中移除
  • Banner Ad APIgetAvailableBannerIds / getBanner / runBannerAction + *Async)— 已由统一激励槽位取代。请使用 getRewardedAdSlots() + showRewardedAd({ slotId })(action=BANNER)。为兼容而保留。
  • shareForReward / shareForRewardAsync — 已由统一激励槽位取代。请使用 showRewardedAd({ slotId })(action=SHARE)。为兼容而保留。

v0.1.6 (2026-05-12)

新功能

  1. 新增 Banner Ad API(槽位模型):新增 API,游戏可按各个槽位获取横幅图片并自行渲染,用户点击时由平台处理对应动作。

    // 1) 获取活动横幅槽位 ID 列表
    TudadaSDK.getAvailableBannerIds({
    success: (res) => console.log('槽位:', res.bannerIds),
    });

    // 2) 获取与槽位匹配的横幅数据
    TudadaSDK.getBanner({
    bannerId: 'main_menu_top',
    success: (res) => {
    if (res.banner) renderBanner(res.banner.imageUrl);
    },
    });

    // 3) 用户点击时委托动作(奖励由游戏自行处理)
    TudadaSDK.runBannerAction({ bannerId: 'main_menu_top' });
    • 回调 / Promise 配对:每个函数都提供 *Async() 版本
    • bannerId 同时充当游戏定义的槽位名
    • runBannerAction 仅传递 success/fail 信号 — 奖励发放由游戏自行处理
    • 详细指南:Ad API → Banner Ad
  2. 新增 TudadaSDK.gameAction 动作日志 API(Phase 1):以 fire-and-forget 方式向平台发送游戏生命周期动作。

    TudadaSDK.gameAction.start();
    TudadaSDK.gameAction.complete({ payload: { score: 1200, level: 5 } });
    TudadaSDK.gameAction.exit({ payload: { reason: 'USER_QUIT' } });
    • start(option?) / complete(option) / exit(option) — 生命周期动作信号
    • SDK 初始化完成时还会自动发送一次「游戏加载完成」信号
    • fire-and-forget;下游分发由平台负责
    • 详细指南:GameAction API
  3. login() 响应新增用户信息凭证字段

    login() 成功响应中提供已签名的用户信息凭证,游戏服务器仅使用密钥即可自行验证

    TudadaSDK.login({
    success: (res) => {
    console.log(res.code, res.userId);
    sendToGameServer({
    payload: res.userInfoPayload,
    signature: res.userInfoSignature,
    });
    },
    });
    • userInfoPayload: URL-encoded query string(gameUserId, name, profileImageUrl, authDate, attribute)
    • userInfoSignature: 对 payload 的 HMAC 签名
    • 已有响应字段(code, userId, errMsg, errCode)保持不变(wx.login 兼容)
    • 详细指南: Auth API → 用户信息凭证
  4. getUserInfo() 响应重塑为 Tudada-fit(破坏性变更)

    移除 wx 兼容的 4 个字段(encryptedData/iv/signature/rawData),改为返回与 login() 相同的凭证。withCredentials 选项也一并移除。

    // before (v0.1.5)
    TudadaSDK.getUserInfo({
    withCredentials: true,
    success: (res) => sendToServer(res.encryptedData, res.iv),
    });

    // after (v0.1.6)
    TudadaSDK.getUserInfo({
    success: (res) => {
    console.log(res.userInfo.nickName);
    sendToGameServer({
    payload: res.userInfoPayload,
    signature: res.userInfoSignature,
    });
    },
    });
    • wx.getUserInfo 已从 wx 兼容表面移除 — 继续使用 TudadaSDK.getUserInfo
    • 详细指南: Auth API → getUserInfo

v0.1.5 (2026-03-30)

新功能

  1. 新增 shareForReward API: 新增了完成分享后发放奖励的 API。

    TudadaSDK.shareForReward({
    url: 'https://example.com/share', // 可选
    success: (res) => {
    if (res.rewarded) console.log('分享完成 — 发放奖励');
    },
    fail: (err) => console.error('分享失败:', err.errMsg),
    });

    // Promise 方式
    const result = await TudadaSDK.shareForRewardAsync({ url: 'https://example.com/share' });
    if (result.rewarded) console.log('发放奖励');
    • shareForReward(): 回调模式 (success/fail/complete)
    • shareForRewardAsync(): Promise 模式
    • 分享处理由平台自动执行

v0.1.4 (2026-03-18)

新功能

  1. 新增 showRewardedAd API: 一次调用即可完成激励广告的加载到展示。

    TudadaSDK.showRewardedAd({
    adUnitId: 'your-ad-unit-id',
    success: (res) => {
    if (res.isEnded) console.log('观看完成 — 发放奖励');
    },
    fail: (err) => console.error('广告失败:', err.errMsg),
    });

    // Promise 模式
    const result = await TudadaSDK.showRewardedAdAsync({ adUnitId: 'your-ad-unit-id' });
    • showRewardedAd(): 回调模式 (success/fail/complete) — 推荐
    • showRewardedAdAsync(): Promise 模式
    • 广告加载、展示、重试、加载 UI、失败弹窗由平台统一处理
    • createRewardedVideoAd 保留为旧版 (@deprecated)
  2. 新增 CheckFeature API: 可以提前检查特定 API 在当前平台是否受支持。

    TudadaSDK.checkFeature({
    apiName: 'startAccelerometerSensor',
    success: (res) => console.log('支持:', res.apiName),
    fail: (res) => console.log('不支持:', res.status),
    });

    // Promise 模式
    const result = await TudadaSDK.checkFeatureAsync('startAccelerometerSensor');
    • checkFeature(): 基于回调 — success(支持) / fail(不支持)
    • checkFeatureAsync(): 基于 Promise — 支持/不支持均 resolve
    • 不支持原因: unknown_api | version_required | platform_unsupported | device_unsupported | permission_denied
  3. 新增 LaunchOptions API: 可以查询游戏启动时传入的查询参数及来源信息。

    const options = TudadaSDK.getLaunchOptions();
    console.log('查询参数:', options.query);
    • getLaunchOptions(): 同步 — 返回预缓存的启动选项
    • getLaunchOptionsAsync(): 异步 — 查询最新启动选项

变更

  • wx 对象旧版化正式声明: 通过 wx 对象的 API 调用已正式归类为现有 WeChat 移植游戏的旧版兼容功能。
    • wx 对象仅暴露 v0.1.2 之前注册的现有 API。
    • v0.1.3 起新增的 API(加速度计、checkFeaturegetLaunchOptions 等)仅限 TudadaSDK,无法通过 wx 对象使用。
    • 移植完成后建议逐步转换为直接调用 TudadaSDK

v0.1.3 (2026-02-26)

新功能

  1. 新增 Accelerometer API: 添加了加速度计传感器扁平 API。这是与 wx API(wx.startAccelerometer 等)不兼容的 TudadaSDK 独立接口,API 名称和参数结构不同。无法通过 wx 对象使用,必须通过 TudadaSDK 直接调用。

    TudadaSDK.onAccelerometerChange((res) => {
    console.log(`X: ${res.x}, Y: ${res.y}, Z: ${res.z}`);
    });

    TudadaSDK.startAccelerometerSensor({
    sensitivity: 'normal',
    success: () => console.log('开始传感'),
    });

    TudadaSDK.stopAccelerometerSensor();
    • startAccelerometerSensor()stopAccelerometerSensor()onAccelerometerChange()offAccelerometerChange()
    • 与 wx API 不同的独立接口(例如: startAccelerometerSensor vs wx.startAccelerometer
    • 基于 XYZ 轴的加速度数据接收
    • 基于灵敏度控制: 'sensitive' | 'normal' | 'insensitive'

v0.1.2 (2026-02-26)

新功能

  1. SystemInfoAppBaseInfo 新增 environment 字段

    添加了表示当前访问环境的字段。

    const info = TudadaSDK.getSystemInfoSync();
    console.log(info.environment); // 'prod' 或 'dev'

    const appInfo = TudadaSDK.getAppBaseInfo();
    console.log(appInfo.environment); // 'prod' 或 'dev'
    说明
    'prod'生产环境
    'dev'开发环境

    可用于根据环境切换资源 CDN 地址等场景。

    const info = TudadaSDK.getSystemInfoSync();
    const cdnBase = info.environment === 'prod'
    ? 'https://cdn.example.com/prod'
    : 'https://cdn.example.com/dev';

v0.1.1 (2026-02-20)

  • 应用内部改进(无需修改游戏代码)

v0.1.0 (2026-02-06)

新功能

  1. login() 响应新增 userId 字段

    TudadaSDK.login({
    success: (res) => {
    console.log(res.code); // 已有
    console.log(res.userId); // 新增
    },
    });
  2. SystemInfo.wifiEnabled 改为返回实际值

    之前返回固定值,现在返回实际 Wi-Fi 启用状态。

变更(需要迁移)

  1. checkSession() success 回调结果类型变更

    // 0.0.1 — success 回调包含登录信息
    TudadaSDK.checkSession({
    success: (res) => {
    // res 包含 code、userId 等
    },
    });

    // 0.1.0 之后 — success 回调仅包含通用结果
    TudadaSDK.checkSession({
    success: (res) => {
    // 仅包含 res.errMsg (GeneralCallbackResult)
    // 如需登录信息,请单独调用 login()
    },
    });

v0.0.2

新功能

  1. 新增 Audio API: 添加了 createInnerAudioContext() 方法。

    const audio = TudadaSDK.createInnerAudioContext();
    audio.src = './bgm.mp3';
    audio.loop = true;
    audio.play();
    • 音频播放/暂停/停止/跳转
    • 音量及播放速度控制
    • 多种事件监听器 (onPlay、onEnded、onError 等)

v0.0.1 (2026-02-02) — 首次发布

首次发布版本。包含以下 API:

  • Auth API (login、checkSession、getUserInfo)
  • Storage API (set/get/remove/clear + Sync 版本)
  • TudadaStore API (云存储)
  • System API (getSystemInfo、getWindowInfo、getDeviceInfo 等)
  • UI API (getMenuButtonBoundingClientRect)
  • Device API (振动、键盘)
  • Clipboard API
  • Ad API (激励视频广告)
  • Lifecycle API (onShow、onHide、exitMiniProgram、restartMiniProgram)