游戏工作室接入指南
本指南面向游戏开发工程师,帮助您的网页游戏只需一套 API,便能在超级应用、加密钱包以及标准浏览器中流畅运行。
1. 安装
安装核心 SDK 包:
npm install @playsout/hybrid-sdk2. 初始化
在您的应用生命周期中,应尽早初始化 SDK。
import { PHSDK } from "@playsout/hybrid-sdk";
// 初始化 SDK
const sdk = await PHSDK.init({
appId: "com.yourstudio.game",
// 如果处于 Web3 钱包环境,这里配置如何连接
injectedProviderKey: "ethereum",
// 用于将您的游戏内商品与宿主计费系统映射
pay: {
catalog: {
version: "1.0",
products: {
"100_coins": {
// EVM (区块链) 配置
networkId: 137,
token: { address: "0x...", decimals: 6, symbol: "USDT" },
payee: "0x...",
amount: "1000000",
// 权益明细
entitlement: { id: "100_coins", type: "consumable", quantity: 1 }
}
}
}
}
});3. 检查可用能力
由于您的游戏可能会在简易浏览器 (仅具备基础能力) 或全功能超级应用 (具备基础+高级能力) 中运行,因此在使用特定功能前,最好检查环境是否支持:
const caps = sdk.runtime.getCapabilities();
if (caps.pay.purchase) {
// 渲染内购商城 UI
renderShopButton();
} else {
// 环境不支持支付,隐藏购买按钮,或稍后提供 Web 结账渠道
hideShopButton();
}4. 示例:登录与购买
您可以编写统一的业务流,无需关心用户实际使用的是 MetaMask 还是某款定制的安卓内置浏览器。
// 1. 获取标识符
if (caps.identity.signIn) {
try {
const identity = await sdk.identity.signIn();
console.log("当前登录账号:", identity.subject);
} catch (e) {
console.error("登录失败", e);
}
} else {
// 回退:使用匿名访客 ID (静默模式)
const identity = await sdk.identity.get();
console.log("访客 ID:", identity.subject);
}
// 2. 发起购买
if (caps.pay.purchase) {
try {
const result = await sdk.pay.purchase({ productId: "100_coins" });
if (result.status === "CONFIRMED") {
console.log("购买成功!交易流水号:", result.transactionRef);
await sdk.ui.toast("已添加 100 金币!");
}
} catch (error) {
console.error("支付异常:", error);
}
}