사전 준비
•
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();
}
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();
}
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
복사