목차

상수 및 자료형

USER_AGREE_RESULT
* 유저 동의 결과를 받는 콜백 함수에서 사용되는 데이터
typedef enum USER_AGREE_RESULT_TYPE
{
    USER_AGREE_SUCCESS = 0,
    USER_AGREE_TERMS_CLOSE = 1 // only iOS
}USER_AGREE_RESULT;
ACTIVE_USER_RESULT
* DID 요청 결과를 받는 콜백 함수에서 사용되는 데이터
typedef enum ACTIVE_USER_RESULT_TYPE
{
    ACTIVE_USER_GETDID_SUCCESS = 0,
    ACTIVE_USER_GETDID_FAIL = 1,
}ACTIVE_USER_RESULT;
SERVER_STATE
* 모듈 서버를 설정 (Available in 2.6.0 and later)
typedef enum SERVER_STATE_TYPE
{
    LIVE_SERVER = 0,
    STAGING_SERVER = 1,
    SANDBOX_SERVER = 2
}SERVER_STATE;
SHOW_POPUP
* 점검,공지 팝업을 보여줘야 할지 여부를 나타내는 데이터 (Available in 2.6.5 and later)
typedef enum SHOW_POPUP_TYPE
{
    SHOW = 0,
    NOTSHOW = 1
} SHOW_POPUP;
POPUP_STATE_TYPE
* 점검,공지 팝업이 닫혔는지 상태를 나태내는 데이터 (Available in 2.6.6 and later)
typedef enum POPUP_STATE_TYPE
{
    CLOSE = 0
} POPUP_STATE;
REQUEST_PERMISSION_STATE_TYPE
* (Android Only)Android 권한 추가 요청 시 요청에 대한 결과 상태를 나타내는 데이터 (Available in 2.9.0 and later)
typedef enum REQUEST_PERMISSION_STATE_TYPE
{
    SUCCESS = 0,
    ERROR = -1,
    NOT_SUPPORT_OS_VERSION = -2,
    WRONG_TYPE_DATA = -3
} REQUEST_PERMISSION_STATE;

함수

void CS_ActiveUserStart()

void


void CS_ActiveUserStartEx(SERVER_STATE serverState)

void

in/out Type Name Description
in SERVER_STATE serverState

설정할 모듈 서버 enum 값


void CS_ActiveUserStartWithoutNotice(SERVER_STATE serverState, int showNotice)

void

in/out Type Name Description
in SERVER_STATE serverState

부가 설명 없음

in int showNotice

초기화시에 점검, 업데이트 팝업 노출을 진행할지 선택하는 값


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)
게임 언어를 설정하지 않을 경우 단말 언어 설정을 따릅니다.
(CS_ActiveUserStart() 혹은 CS_ActiveUserStartEx() 수행후 호출하여 설정, 또한 게임 언어 변경이 필요한 경우 호출하여 설정)
added in 2.7.3(iOS), 2.7.5(AD)

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)
설정하지 않을 경우 웹뷰 타임아웃 대기 시간은 최초 5초(초기 시간)이며 타임아웃이 발생할 경우 5초씩 증가하여 5 / 10 / 15초의 타임아웃 대기시간을 갖습니다.
타임아웃 초기 시간은 5~15초 사이로 설정 가능합니다. 해당 범위에서 벗어난 값을 사용할 경우 기본 5초로 설정됩니다.
예) 초기 시간 7초 설정시 : 7 / 10 / 15초 타임아웃 대기시간, 초기 시간 12초 설정시 : 12 / 15 / 15초 타임아웃 대기 시간
added in 2.8.0(iOS), 2.8.0(AD)

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 : 성공
CM_E_ERROR :기타에러
CM_E_SHORTBUF : 버퍼가 작음

in/out Type Name Description
out char* buf

버전 정보를 받아오는 메모리 버퍼. 종료 문자를 더하여서 최소 9byte가 필요함.

in int bufSize

메모리 버퍼의 크기. byte 단위.


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

로그를 노출할지 여부


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

해당 게임의 viewController의 view를 전달한다. (iOS에서 사용되는 파라미터)


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

void

in/out Type Name Description
in void* parentView

해당 게임의 viewController의 view를 전달한다. (iOS에서 사용되는 파라미터)

in const char* url

게임이 퍼블리싱이나 기타 이유로 외부 이용약관이나 공통 이용약관과 다른경우 변경된 페이지의 URL을 노출 시킵니다.


void CS_UserAgreeReset()

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

true(default) : 권한 고지 노출 / false : 권한 고지 미노출


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

Android 권한을 JsonArray 형태로 구성합니다. 그리고 구성된 JsonArray 형태를 String 형태로 파라미터에 입력합니다. (ex : String requests = "{"requests":["android.permission.READ_CONTACTS","android.permission.READ_PHONE_STATE","android.permission.WRITE_EXTERNAL_STORAGE"]}";)

in RequestUserPermissionsCB cb

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


Java / C# only

ActiveUser(Activity activity)

no return value

in/out Type Name Description
in Activity activity

Activity


void onActivityStarted()

void


void onActivityStopped()

void


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)

int

0 : 로그 전송 실패(logData 형식이 JSONObject 형태가 아닌 경우)
1 : 로그 전송 성공

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


콜백 함수

typedef void (* UserAgreeCB)(USER_AGREE_RESULT result)

no return value

in/out Type Name Description
in USER_AGREE_RESULT result

USER_AGREE_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

ACTIVE_USER_RESULT 입니다.

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) {
        // 가이드 참고
    }
}
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

Android 추가 권한 요청 결과 상태

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) {
                // 허용된 권한 목록 확인 가능
            }
            if (deniedPermissions != null) {
                // 거부된 권한 목록 확인 가능
            }
            break;
    }
}
void noticeShowPopupCBWithData(POPUP_STATE state)

no return value

in/out Type Name Description
in POPUP_STATE state

팝업의 상태

@Override
public void noticeShowPopupCBWithData(final ActiveUser.POPUP_STATE state) {
    runOnUiThread(new Runnable() {
        public void run() {
            StringBuilder resultString = new StringBuilder();
            resultString.append(String.valueOf(state.getValue()));
            Log.d(“CB”, “callback data :+ resultString);
        }
    }
}
void noticePopupInfoCBWithData(SHOW_POPUP show, String jsonData)

no return value

in/out Type Name Description
in SHOW_POPUP show

노출해야 할 팝업이 존재하는지 여부

in String jsonData

팝업 데이터

@Override
public void noticePopupInfoCBWithData(fnal ActiveUser.SHOW_POPUP show, String jsonData) {
    runOnUiThread(new Runnable() {
        public void run() {
            StringBuilder resultString = new StringBuilder();
            resultString.append(String.valueOf(show.getValue()))
            .append(‘\t’)
            .append(jsonData);
            Log.d(“CB”, “callback data :+ resultString);
        }
    }
}