Electron 串接
事前準備
•
要進行 SDK 串接作業,需使用 已擁有該遊戲權益的帳號。
•
權益可透過「遊戲使用券」取得。
Basic Integration
// main.js
const StovePCSDK = require("./StovePCSDK");
const config = {
// 環境值,固定為 "Live"
env: "Live",
// 請填入商品的 Game ID
gameId: "",
// 請填入商品的 Application Key
appKey: "",
// 請填入商品的 Application Secret
secretKey: "",
// 測試時使用 STOVE_PC_LOG_LEVEL_DEBUG,上線時使用 STOVE_PC_LOG_LEVEL_ERROR
logLevel: StovePCSDK.StovePCLogLevel.STOVE_PC_LOG_LEVEL_DEBUG,
// Log 輸出路徑,無特別需求請保持為 ""
logPath: "",
};
const callback = {
onError: (error) => {
console.log(error);
switch (error.functionType) {
case StovePCSDK.StovePCFunctionType.STOVE_PC_INIT:
case StovePCSDK.StovePCFunctionType.STOVE_PC_GET_USER:
case StovePCSDK.StovePCFunctionType.STOVE_PC_GET_OWNERSHIP:
app.quit();
break;
}
},
onInitComplete: () => {
// 初始化成功後,請求使用者資訊
StovePCSDK.getUser();
},
onToken: (token) => {},
onUser: (user) => {
// 取得使用者資訊後,請求遊戲擁有權
StovePCSDK.getOwnership();
},
onOwnership: (ownerships) => {
ownerships.forEach((ownership) => {
// 若無遊戲擁有權則結束應用程式
if (ownership.gameId === config.gameId && ownership.ownershipCode !== 1) {
app.quit();
}
// DLC 啟用示例
if (
ownership.gameId === config.gameId &&
ownership.gameCode === 5 &&
ownership.ownershipCode === 1
) {
// Activate DLC
}
});
},
onStat: (stat) => {},
onSetStat: (statValue) => {},
onAchievement: (achievement) => {},
onAllAchievement: (achievements) => {},
};
let handlerId = -1;
app.whenReady().then(() => {
const initResult = StovePCSDK.init(config, callback);
if (initResult !== StovePCSDK.StovePCResult.STOVE_PC_NO_ERROR) {
app.quit();
}
// 處理 callback 循環
handlerId = setInterval(() => {
StovePCSDK.runCallback();
}, 1000);
ipcMain.on("unlock-achievement", handleUnlockAchievement);
});
app.on("window-all-closed", () => {
clearInterval(handlerId);
StovePCSDK.uninit();
app.quit();
});
// 解鎖成就
function handleUnlockAchievement(statId) {
StovePCSDK.unlockAchievement(statId);
}
JavaScript
복사
// preload.js
const { contextBridge, ipcRenderer } = require("electron");
contextBridge.exposeInMainWorld("electronAPI", {
unlockAchievement: (statId) => ipcRenderer.send("unlock-achievement", statId),
});
JavaScript
복사


