mcpField
P
poki-js-sdk

poki-js-sdk

github.com/hungify开发016 次安装1 周前更新
代码仓库

关于 poki-js-sdk

poki-js-sdk 是将 Poki JavaScript SDK 集成到游戏中的技能,面向游戏开发者,涵盖初始化、生命周期事件、广告时段以及使用 Poki Inspector 验证流程。

主要功能

  1. 01加载并初始化 Poki SDK
  2. 02通知游戏加载完成
  3. 03配对游戏开始与停止事件
  4. 04添加插屏和激励广告时段
  5. 05使用 Poki Inspector 验证流程

适用场景

  1. 01将 Poki 集成到游戏
  2. 02通过生命周期事件管理游戏环节
  3. 03测试广告时段及暂停恢复行为

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hungify/playables-skills --skill poki-js-sdk

安装后在 Claude Code 中输入/poki-js-sdk确认已加载。

详细介绍

Poki JavaScript SDK

集成工作流

  1. 添加 SDK 脚本 — 嵌入 Poki 脚本标签,或动态注入该标签。
  2. 初始化 — 调用 PokiSDK.init(),并在游戏准备就绪时完成 gameLoadingFinished。
  3. 验证初始化 — 查看浏览器控制台中的 Poki SDK 握手消息;使用 Poki Inspector 开发工具确认会话已启动。
  4. 添加生命周期钩子 — 在每次游戏环节前后调用 gameplayStart / gameplayStop。
  5. 添加广告插播 — 在自然的暂停节点插入 commercialBreak;在玩家可以选择观看广告的场景添加 rewardedBreak。
  6. 在 Poki Inspector 中测试 — 打开 https://inspector.poki.io,加载游戏 URL,并触发每种广告插播以确认流程。

安装

将官方 Poki SDK 脚本添加到页面:

<script src="https://game-cdn.poki.com/scripts/v2/poki-sdk.js"></script>

或动态注入:

function loadPokiSdk() {
    return new Promise((resolve, reject) => {
        const script = document.createElement('script');
        script.src = 'https://game-cdn.poki.com/scripts/v2/poki-sdk.js';
        script.onload = resolve;
        script.onerror = reject;
        document.head.appendChild(script);
    });
}

初始化

loadPokiSdk()
    .then(() => window.PokiSDK.init())
    .then(() => {
        // SDK is ready
        window.PokiSDK.gameLoadingFinished();
    })
    .catch(() => {
        // SDK init failed - continue without Poki integration
        window.PokiSDK && window.PokiSDK.gameLoadingFinished();
    });

游戏准备好供玩家游玩时,调用 gameLoadingFinished。如果加载器有多个明确的阶段,则使用 gameLoadingStart 和 gameLoadingFinished 标记这些阶段的起止。

广告

插屏广告

使用 isOpened 标志检测广告是否实际展示——未展示广告时不会调用回调。

function showInterstitial() {
    let isOpened = false;

    window.PokiSDK.commercialBreak(() => {
        isOpened = true;
        // Pause game, mute audio
    })
        .then(() => {
            if (isOpened) {
                // Resume game, unmute audio
            } else {
                // Ad was not shown
            }
        })
        .catch(() => {
            // Ad request failed
        });
}
激励广告

rewardedBreak 会解析为一个布尔值——只有当 isOpened 为 true 且解析值为真时,才发放奖励。

function showRewarded() {
    let isOpened = false;

    window.PokiSDK.rewardedBreak(() => {
        isOpened = true;
        // Pause game, mute audio
    })
        .then((success) => {
            if (isOpened) {
                if (success) {
                    // Grant reward to the player
                }
                // Resume game, unmute audio
            } else {
                // Ad was not shown
            }
        })
        .catch(() => {
            // Ad request failed
        });
}

生命周期

玩家获得控制权时(关卡开始、关卡恢复)调用 gameplayStart;控制权被收回时(关卡暂停、完成、失败或返回菜单)调用 gameplayStop。每次 gameplayStart 都必须配对调用对应的 gameplayStop。

function onLevelStart() {
    window.PokiSDK.gameplayStart();
}

function onLevelEnd() {
    window.PokiSDK.gameplayStop();
}

测试与验证

  • 打开 https://inspector.poki.io 上的 Poki Inspector,并加载游戏 URL 以获取开发者会话。
  • 浏览器控制台会打印 Poki SDK 握手和事件消息——确认 init 已解析,并且 gameLoadingFinished 已获确认。
  • 通过 Inspector 界面触发 commercialBreak 和 rewardedBreak,模拟广告展示,并验证暂停/恢复逻辑是否正确触发。
  • 确认 gameplayStart 和 gameplayStop 事件在 Inspector 时间线上正确时机出现。

未涵盖功能说明:此技能不涉及服务器时间、广告拦截检测、happyTime 或 gameInteractive;请将实现重点放在上述 Poki SDK 功能上。

评论

支持 Markdown