목차

상수 및 자료형

USER_AGREE_RESULT

* 유저 동의 결과를 받는 콜백 함수에서 사용되는 데이터

* iOS Native, C Plugin
typedef
enum USER_AGREE_RESULT_TYPE

{
    USER_AGREE_SUCCESS = 0,
    USER_AGREE_TERMS_CLOSE = 1 // only iOS
}USER_AGREE_RESULT;
* Unity Plugin

public const int USER_AGREE_SUCCESS = 0;
public const int USER_AGREE_TERMS_CLOSE = 1;    // iOS-only

* Android Native

int USER_AGREE_SUCCESS = 0;

ACTIVE_USER_RESULT
* DID 요청 및 ActiveUser 초기화 결과를 받는 콜백 함수에서 사용되는 데이터

* iOS Native, C Plugin
typedef
enum ACTIVE_USER_RESULT_TYPE
{
    ACTIVE_USER_GETDID_SUCCESS = 0,
    ACTIVE_USER_GETDID_FAIL = 1,
}ACTIVE_USER_RESULT;
* Unity Plugin

public const int ACTIVE_USER_GETDID_SUCCESS = 0;
public const int ACTIVE_USER_GETDID_FAIL = 1;

* Android Native

int ACTIVE_USER_GETDID_SUCCESS = 0;
int ACTIVE_USER_GETDID_FAIL = 1;

SERVER_STATE
* 모듈 서버 데이터 (Available in 2.6.0 and later)

* iOS Native, C Plugin
typedef
enum SERVER_STATE_TYPE
{
    LIVE_SERVER = 0,
    STAGING_SERVER = 1,
    SANDBOX_SERVER = 2
}SERVER_STATE;
* Unity Plugin

public const int LIVE_SERVER = 0;
public const int STAGING_SERVER = 1;    // TEST SERVER
public const int SANDBOX_SERVER = 2;

* Android Native

public enum SERVER_STATE {
   LIVE_SERVER(0),
   STAGING_SERVER(1),    // TEST SERVER
   SANDBOX_SERVER(2),
}

SHOW_POPUP
* 점검, 업데이트, 공지 팝업 노출 필요 여부를 나타내는 데이터 (Available in 2.6.5 and later)

* iOS Native, C Plugin
typedef
enum SHOW_POPUP_TYPE
{
    SHOW = 0,
    NOTSHOW = 1
} SHOW_POPUP;
* Unity Plugin

public const int POPUP_SHOW = 0;
public const int POPUP_NOTSHOW = 1;

* Android Native

public enum SHOW_POPUP {
   SHOW(0),
   NOT_SHOW(1),
   SHOW_POPUP_ERROR(-1);
}

POPUP_STATE_TYPE
* 점검, 업데이트, 공지 팝업이 닫혔는지를 나타내는 데이터 (Available in 2.6.6 and later)

* iOS Native, C Plugin
typedef enum POPUP_STATE_TYPE
{
    CLOSE = 0,
    UNSHOWN = 1,
    POPUP_STATE_ERROR = -1
}POPUP_STATE;
* Unity Plugin

public const int POPUP_STATE_CLOSE = 0;
public const int POPUP_STATE_UNSHOWN = 1;

* Android Native

public enum POPUP_STATE {
   CLOSE(0),
   UNSHOWN(1),
   POPUP_STATE_ERROR(-1);
}

REQUEST_PERMISSION_STATE_TYPE
* (Android Only) Android 권한 추가 요청 시 요청에 대한 결과 상태를 나타내는 데이터 (Available in 2.9.0 and later)

* iOS Native, C Plugin
typedef
enum REQUEST_PERMISSION_STATE_TYPE
{
    SUCCESS = 0,
    ERROR = -1,
    NOT_SUPPORT_OS_VERSION = -2,
    WRONG_TYPE_DATA = -3
} REQUEST_PERMISSION_STATE;
* Unity Plugin

public const int REQUEST_PERMISSION_SUCCESS = 0;
public const int REQUEST_PERMISSION_ERROR = -1;
public const int REQUEST_PERMISSION_NOT_SUPPORT_ON_VERSION = -2;
public const int REQUEST_PERMISSION_WRONG_TYPE_DATA = -3;

* Android Native

public enum REQUEST_PERMISSION_STATE {
   SUCCESS(0),
   ERROR(-1),
   NOT_SUPPORT_OS_VERSION(-2),
   WRONG_TYPE_DATA(-3);
}

MODULE_ORIENTATION
* 모듈에서 지원하는 orientation 데이터

typedef enum MODULE_ORIENTATION_TYPE
{
   ALL = 0,
   PORTRAIT = 1,
   LANDSCAPE = 2
}MODULE_ORIENTATION;

* Unity Plugin

public const int ORIENTATION_ALL = 0;
public const int ORIENTATION_PORTRAIT = 1;
public const int ORIENTATION_LANDSCAPE = 2;

* Android Native

public static final int MODULE_ORIENTATION_ALL = 0;
public static final int MODULE_ORIENTATION_PORTRAIT = 1;
public static final int MODULE_ORIENTATION_LANDSCAPE = 2;

함수

void CS_ActiveUserStart()

void

 

void CS_ActiveUserStartEx(SERVER_STATE serverState)

void

in/out Type Name Description
in SERVER_STATE serverState

설정할 모듈 서버 enum 값

(0 : LIVE_SERVER, 1 : TEST_SERVER, 2 : SANDBOX_SERVER)

 

void CS_ActiveUserStartWithoutNotice(SERVER_STATE serverState, int showNotice)

void

in/out Type Name Description
in SERVER_STATE serverState

설정할 모듈 서버 enum 값

(0 : LIVE_SERVER, 1 : TEST_SERVER, 2 : SANDBOX_SERVER)

in int showNotice

팝업 노출 여부

(0 : 미노출, 1 : 노출)

(bool 타입 Plugin의 경우 - false : 미노출, true : 노출)

 

void CS_ActiveUserSetServerId(const char* server_id)

void

in/out Type Name Description
in const char* server_id

설정 할 Server ID

 

void CS_ActiveUserSetGameLanguage(const char* game_language)

void

in/out Type Name Description
in const char* game_language

game_language 코드 값

Available in 2.7.3(iOS), 2.7.5(Android) and later

 

void CS_SetMinTimeoutSeconds(int seconds)

void

in/out Type Name Description
in int seconds

타임아웃 초기 시간 값(초)

Available in 2.8.0(iOS), 2.8.0(Android) and later

 

int CS_ActiveUserGetVersion(char* buf, int bufSize)

CM_E_SUCCESS (0) : 성공
CM_E_ERROR (-1) :기타에러
CM_E_SHORTBUF (-2) : 버퍼가 작음

(String 타입 Plugin return인 경우 버전값을 String으로 반환)

in/out Type Name Description
out char* buf

버전 정보를 받을 메모리 버퍼

in int bufSize

메모리 버퍼의 크기 (최대 12byte 필요 - C2S.19.19.19)

 

void CS_ActiveUserSetLogged(int isLogged)
 void
in/out Type Name Description
in int isLogged

로그 활성화 여부

(0 : 비활성, 1 : 활성)

 

const char* CS_ActiveUserGetDID()

DID string

Available in 2.0.0 and later

 

void CS_ActiveUserSetCallback(ActiveUserCB cb)

void

in/out Type Name Description
in ActiveUserCB cb

콜백 함수 typedef void (*ActiveUserCB)(ACTIVE_USER_RESULT result);

 

void CS_UserAgreeSetCallback(UserAgreeCB cb)

void

in/out Type Name Description
in UserAgreeCB cb

콜백 함수 typedef void (*UserAgreeCB)(USER_AGREE_RESULT result);

 

void CS_UserAgreeShowTermsUI(void* parentView)

void

in/out Type Name Description
in void* parentView

(iOS-Only) 해당 게임의 viewController의 view

(Android에서는 별도 설정 필요 없음)

 

void CS_UserAgreeShowTermsUIEx(void* parentView, const char* url)

void

in/out Type Name Description
in void* parentView

(iOS-Only) 해당 게임의 viewController의 view

(Android에서는 별도 설정 필요 없음)

in const char* url

노출할 url

 

void CS_UserAgreeReset() (Deprecated, C2S.19.6)

void

 

void CS_ActiveUserSetEnableRequestStoragePermission()

void

 

void CS_UpdateNoticeShowPopup(UpdateNoticePopupCB cb)

void

in/out Type Name Description
in UpdateNoticePopupCB cb

팝업이 닫히는 경우 호출되는 콜백

 

void CS_UpdateNoticeGetPopupInfo(UpdateNoticeInfoCB cb)

void

in/out Type Name Description
in UpdateNoticeInfoCB cb

팝업 데이터를 전달받는 콜백

 

void CS_ActiveUserGetPermissionViewData(PermissionViewDataCB cb)

void

in/out Type Name Description
in PermissionViewDataCB cb

팝업 데이터를 전달받는 콜백

 

void CS_ActiveUserSetPermissionViewState(int isOn)

void

in/out Type Name Description
in int isOn

모듈 권한 고지 노출 여부

(0 : 미노출, 1 : 노출)

 

void CS_ActiveUserSendFunnelsLogs(String funnelsTrack, String optionTag)

void

in/out Type Name Description
in String funnelsTrack

700 혹은 800의 정의된 퍼널트랙 값

in String optionTag

부가 정보

 

void CS_ActiveUserRequestUserPermissions(String requests, RequestUserPermissionsCB cb)

void

in/out Type Name Description
in String requests

요청할 권한 정보 (JSONArray 형태의 String 데이터로 입력)

(ex : “{“request”:[“android.permission.READ_CONTACTS","android.permission.READ_PHONE_STATE"]}”

in RequestUserPermissionsCB cb

권한 고지 요청 결과를 전달받는 콜백

 

void CS_ActiveUserUpdateServerId(const char* serverId)

void

in/out Type Name Description
in const char* serverid

변경하고자 하는 serverid 입력

 

void CS_ActiveUserUpdateGameLanguage(const char* gameLanguage)

void

in/out Type Name Description
in const char* gameLanguage

변경하고자 하는 gameLanguage 입력

 

void CS_SetAnalyticsLogSettings(int sendLimit, int queueLimit, int sendCycleSecond)

void

in/out Type Name Description
in int sendLimit 전송 주기마다 전송할 로그의 최대치 (default: 5)
in int queueLimit 최대로 적재할 로그 queue의 양 (default: 50)
in int sendCycleSecond 로그 전송 주기 (default: 1)

 

int CS_SendAnalyticsLog(const char* logData)

* iOS Native, C Plugin
int / 0 : 로그 전송 실패(logData 형식이 JSONObject 형태가 아닌 경우), 1 : 로그 전송 성공
* Unity Plugin
int / 0 : 로그 전송 실패(logData 형식이 JSONObject 형태가 아닌 경우), 1 : 로그 전송 성공
* Android Native
int / 0 : 로그 전송 실패(logData 형식이 JSONObject 형태가 아닌 경우), 1 : 로그 전송 성공

in/out Type Name Description
in const char* logData 애널리틱스 서버에 전송할 로그 정보 ( ex : “{“charName”:”C2SDev”,”lev”:77,”gem”:50,”category”:”userInfoLog”}” )
int CS_SetEmergencyModeWithUid(const char* uid)

* iOS Native, C Plugin
int / 0 : 긴급 로그인 실패 (uid 세팅 실패), 1 : 긴급 로그인 성공 (uid 세팅 성공)
* Unity Plugin
int / 0 : 긴급 로그인 실패 (uid 세팅 실패), 1 : 긴급 로그인 성공 (uid 세팅 성공)
* Android Native
int / 0 : 긴급 로그인 실패 (uid 세팅 실패), 1 : 긴급 로그인 성공 (uid 세팅 성공)

in/out Type Name Description
in const char* uid 긴급 로그인 사용 요청 uid

 

void CS_SetModuleOrientation(MODULE_ORIENTATION orientation)

void

in/out Type Name Description
in MODULE_ORIENTATION orientation

앱 화면 노출 방향

(0 : 가로 및 세로 방향 전환 지원,  1 : 세로 방향, 2 : 가로 방향)

 

void CS_SetUseHercules(int enable)

void

in/out Type Name Description
in int enable

모듈을 통한 보안 모듈 사용 여부 설정

(0 : 모듈을 통해 사용하지 않음,  1 : 모듈을 통해 사용)

 

const char* CS_GetHiveCountry()

DID string

Available in C2S 20.3.2 and later

 

void CS_SetChaneel(const char* channel)

void

in/out Type Name Description
in const char* channel

게임 앱에서 사용하는 로그인 서비스 플랫폼을 정의한다.
(ex. C2S: Hive 플랫폼 - default)

 

const char* CS_GetChannel()

DID string

Available in C2S 20.3.2 and later

 

콜백 함수

typedef void (* UserAgreeCB)(USER_AGREE_RESULT result)

no return value

in/out Type Name Description
in USER_AGREE_RESULT result

유저 약관 동의 결과

void UserAgreeCallBack(USER_AGREE_RESULT type)
{
    switch (type) {
        case USER_AGREE_SUCCESS:
            NSLog(@"USER_AGREE_SUCCESS");
            break;
        default:
            break;
    }
}
typedef void (* ActiveUserCB)(ACTIVE_USER_RESULT result)

no return value

in/out Type Name Description
in ACTIVE_USER_RESULT result

ActiveUser 및 DID 요청 결과

void ActiveUserCallBack(ACTIVE_USER_RESULT type)
{
    switch (type) {
        case ACTIVE_USER_GETDID_SUCCESS:
            NSLog(@"ACTIVE_USER_GETDID_SUCCESS");
            NSLog(@"%s", CS_ActiveUserGetDID());
            break;
        case ACTIVE_USER_GETDID_FAIL:
            NSLog(@"ACTIVE_USER_GETDID_FAIL");
            break;
        default:
            break;
    }
}
typedef void (* UpdateNoticePopupCB)(POPUP_STATE state)

no return value

in/out Type Name Description
in POPUP_STATE state

팝업 닫힘 여부

void UpdateNoticePopupCallback(POPUP_STATE state)
{
    switch (state) {
        case CLOSE:
            NSLog(@"Popup Close");
            break;
        default:
            break;
    }
}
typedef void (* UpdateNoticeInfoCB)(SHOW_POPUP show, const char* jsonData)

no return value

in/out Type Name Description
in SHOW_POPUP show

팝업 노출 필요 여부

in const char* jsonData

팝업 데이터

void UpdateNoticeInfoCallback(SHOW_POPUP show, const char* jsonData)
{
    switch (show) {
        case SHOW:
            NSLog(@"Show Popup");
            break;
        case NOTSHOW:
            NSLog(@"Not show Popup");
            break;
        default:
            break;
    }
}

 

typedef void (* PermissionViewDataCB)(const char* jsonData)

no return value

in/out Type Name Description
in const char* jsonData

권한 고지 페이지 데이터

void PermissionViewDataCallBack(const char* jsonData)
{
    if (jsonData != null) {
        // jsonData example (json을 toString한 형태 반환)
        /**
        {
            "contents":"원활한 게임 서비스 이용을 위한 접근 권한 안내",
            "permissions":[{"title":"(선택)저장공간","contents":"추가 다운로드시 외부 메모리 저장소를 사용할 있도록 요청하는 권한입니다.","nativePermissionName":"android.permission-group.STORAGE","permissionCategory":8}],

            "commons":[{"title":"","contents":"선택 권한은 동의하지 않아도 서비스 이용에 영향을 주지 않습니다.","nativePermissionName":"Common","permissionCategory":9}]}

        */

    }
}
typedef void (* RequestUserPermissionsCB)(REQUEST_PERMISSION_STATE state, const char* grantedPermissions, const char* deniedPermissions)

no return value

in/out Type Name Description
in REQUEST_PERMISSION_STATE state

권한 추가 요청 시 요청에 대한 결과 상태

in const char* grantedPermissions

권한 요청 후 획득 권한

in const char* deniedPermissions

권한 요청 후 미획득 권한

void PermissionViewDataCallBack(REQUEST_PERMISSION_STATE state, const char* grantedPermissions, const char* deniedPermissions)
{
    switch(state) {
        case SUCCESS:
            if (grantedPermissions != null) {
                // 허용된 권한 목록 확인 가능 (json을 toString한 형태 반환)
                // example :
                // 

{"grantedList":["android.permission.READ_CONTACTS","android.permission.POST_NOTIFICATIONS","android.permission.READ_PHONE_STATE","android.permission.WRITE_EXTERNAL_STORAGE"]}


            }
            if (deniedPermissions != null) {
                // 거부된 권한 목록 확인 가능 (json을 toString한 형태 반환)
                // example :
                // 

{"deniedList":["android.permission.READ_CONTACTS","android.permission.POST_NOTIFICATIONS","android.permission.READ_PHONE_STATE","android.permission.WRITE_EXTERNAL_STORAGE"]}


            }
            break;
    }
}