게임 서버가 여러 개일 경우 선택한 게임 서버 정보를 반드시 Hive에 설정해야 합니다. 유저가 게임 서버를 선택해야 하는 경우, 서버 점검 팝업 노출 전에 UI를 구현하고, Configuration 클래스의 setServerId()
메서드를 호출하여 Hive 설정을 변경해 주세요.
게임 서버가 설정된 이후에는 게임에서 원하는 시점에 서버 점검 팝업을 노출할 수 있습니다. Hive One 메뉴를 통해 서버 점검 팝업을 설정하고 점검 시간 동안 게임 접속을 차단합니다. 노출되는 팝업은 Hive SDK에서 제공하는 UI를 이용하거나 Hive에서 제공하는 정보만 수신하여 UI를 커스터마이징할 수 있습니다.
팝업 내용 설정하기
서버 점검 정보, 강제 업데이트 정보, 공지 정보는 Hive One에서 설정하세요. 설정하는 방법에 대한 자세한 내용은 운영 > 프로비저닝 가이드를 참고하세요.
팝업 띄우기
Hive는 서버 점검/게임 강제 업데이트/공지 팝업을 직접 띄우기도 하고, 여러분이 팝업을 구성하여 띄울 수 있도록 팝업에 들어갈 내용을 반환하기도 합니다. Hive가 팝업을 띄우면, 팝업은 Hive UI 스타일로 나타나지만, 여러분이 직접 팝업을 띄우면 원하는 스타일로 팝업을 띄울 수 있습니다. Hive 팝업 이용 여부에 따라 아래와 같이 파라미터를 설정하여 Auth 클래스의 checkMaintenance()
메서드를 호출하세요.
- Hive가 제공하는 팝업 이용하기:
isShow
파라미터를true
로 설정하세요. - 직접 구성한 팝업을 제공하기 위해 팝업 정보 요청하기:
isShow
파라미터를false
로 설정하세요. 팝업 정보에 대한 자세한 내용은 Hive가 반환하는 팝업 정보 섹션에 있습니다.
다음은 Hive가 제공하는 UI로 서버 점검이나 강제 업데이트 알림을 띄우는 예제 코드입니다.
API Reference: hive.Auth.checkMaintenance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using hive; Boolean isShow = true; Auth.checkMaintenance(isShow, (ResultAPI result, AuthMaintenanceInfo authMaintenanceInfo) => { if (result.isSuccess()) { if (authMaintenanceInfo != null) { // 호출 성공 } else { // 팝업에 노출할 내용 없음 } } else if (result.needExit()) { // TODO: 앱 종료 기능을 구현하세요 // 예) Application.Quit(); } }); |
API Reference: Auth::checkMaintenance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <HIVE_SDK_Plugin/HIVE_CPP.h> using namespace std; using namespace hive; bool isShow = true; Auth::checkMaintenance(isShow, [=](ResultAPI result, AuthMaintenanceInfo authMaintenanceInfo) { if (result.isSuccess()) { if (authMaintenanceInfo != null) { // 호출 성공 } else { // 팝업에 노출할 내용 없음 } } else if (result.needExit()) { // TODO: 앱 종료 기능을 구현하세요 // Cocos2d-x 엔진 사용자 // 예) exit(0); // Unreal 엔진 사용자 // 예) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false); } }); |
API Reference: com.hive.Auth.checkMaintenance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import com.hive.Auth import com.hive.ResultAPI val isShow = true Auth.checkMaintenance(isShow, object : Auth.AuthMaintenanceListener { override fun onAuthMaintenance(result: ResultAPI, authMaintenanceInfo: Auth.AuthMaintenanceInfo?) { if (result.isSuccess) { if (authMaintenanceInfo != null) { // 호출 성공 } else { // 팝업에 노출할 내용 없음 } } else if (result.needExit()) { // TODO: 앱 종료 기능을 구현하세요 // 예) exitProcess(0) } } }) |
API Reference: com.hive.Auth.checkMaintenance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import com.hive.Auth; import com.hive.ResultAPI; boolean isShow = true; Auth.INSTANCE.checkMaintenance(isShow, (result, authMaintenanceInfo) -> { if (result.isSuccess()) { if (authMaintenanceInfo != null) { // 호출 성공 } else { // 팝업에 노출할 내용 없음 } } else if (result.needExit()) { // TODO: 앱 종료 기능을 구현하세요 // 예) exitProcess(0) } }); |
API Reference: HIVEAuth:checkMaintenance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import HIVEService let isShow = true AuthInterface.checkMaintenance(isShow) { result, maintenanceInfo in if result.isSuccess() { if let _ = maintenanceInfo { // 호출 성공 } else { // 팝업에 노출할 내용 없음 } } else if result.needExit() { // TODO: 앱 종료 기능을 구현하세요 // 예) exit(0) } } |
API Reference: HIVEAuth:checkMaintenance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#import <HIVEService/HIVEService-Swift.h> BOOL isShow = YES; [HIVEAuth checkMaintenance: isShow handler: ^(HIVEResultAPI *result, HIVEAuthMaintenanceInfo *maintenanceInfo) { if ([result isSuccess]) { if (maintenanceInfo != nil) { // 호출 성공 } else { // 팝업에 노출할 내용 없음 } } else if ([result needExit]) { // TODO: 앱 종료 기능을 구현하세요 // 예) exit(0); } }]; |
Hive가 반환하는 팝업 정보
Hive는 checkMaintenance()
메서드를 통해 Hive One에 설정된 팝업 정보를 요청 받으면, 다음의 표에 정리된 값들을 AuthMaintenanceInfo
오브젝트에 담아 반환합니다.
필드명 | 설명 | 타입 |
title | 팝업 제목 | String |
message | 팝업 내용 | String |
button | 팝업 버튼의 라벨 문구 | String |
action | 팝업 버튼을 눌렀을 때 어떤 동작을 할 것인지 의미
|
AuthV4MaintenanceActionType 열거형 |
url | 외부 브라우저로 띄울 URL. action 필드 값이 OPEN_URL일 때 유효함 |
String |
remainingTime | 개발자가 원하는 대로 사용 가능한 값. 단위: 초 | Integer |