Push 모듈 레퍼런스 가이드 (iOS)

 

목차

  • 1 상수
  • 2 Callback Function
    • 2.1 typedef void (*PushCallback)(Push_CallbackType callbackType, int pushID, int remainPushCallback)
  • 3 Remote Push Notification
    • 3.1 void CS_pushStartEx()
      • Deprecated
    • 3.2 void CS_hlpPushDefaultActionOnLaunch(void* inData)
      • Deprecated
    • 3.3 void CS_hlpPushRegisterTokenEx(void* deviceToken)
      • Deprecated
    • 3.4 void CS_hlpPushSendOpen(void* userInfo)
      • Deprecated
    • 3.5 bool CS_pushSetUid(const char* uid)
      • Deprecated
    • 3.6 void CS_hlpPushUseTestServerEx()
      • Deprecated
    • 3.7 const char* CS_hlpPushGetVersionEx()
      • Deprecated
  • 4 Notification On / Off
    • 4.1 void CS_pushSetAgree(Push_BoolType notice, Push_BoolType night)
    • 4.2 Push_BoolType CS_pushGetAgreeNotice()
    • 4.3 Push_BoolType CS_pushGetAgreeNight()
  • 5 Local Push Notification
    • 5.1 void CS_pushRegisterLocalpush(int pushID, char* title, char* msg, char* ticker, char* type, char* icon, char* sound, char* active, long after)
    • 5.2 void CS_pushRegisterLocalpushEx(int pushID, char* title, char* msg, char* ticker, char* type, char* icon, char* sound, char* active, long after, char* broadcastAction)
    • 5.3 void CS_pushRegisterLocalpushData(char* jsonPushData)
    • 5.4 void CS_pushUnRegisterLocalpush(int pushID)
    • 5.5 void CS_pushRegisterCallbackHandler(PushCallback pushCallback)
    • 5.6 void CS_pushRunCallback(void* notification)
  • 6 Foreground Notification On / Off (iOS 10 이상)
    • 6.1 void CS_pushSetUNUserNotification()
      • Deprecated
    • 6.2 void CS_pushSetForeground(Push_BoolType remote, Push_BoolType local)
    • 6.3 Push_BoolType CS_pushGetForegroundRemote()
    • 6.4 Push_BoolType CS_pushGetForegroundLocal()
  • 7 Request Push Permission
    • 7.1 void CS_pushRequestPermission()

상수

typedef enum Push_CallbackType_ {
    onReceivedGCMPush       = 0x01,     //onReceivedAPNSPush, Android Only
    onReceivedLocalPush     = 0x02
} Push_CallbackType;
typedef enum Push_BoolType_ {
    Push_FALSE  = 0,
    Push_TRUE   = 1
} Push_BoolType;

Callback Function

typedef void (*PushCallback)(Push_CallbackType callbackType, int pushID, int remainPushCallback)
  • Description
  • Return Value

no return value

  • Parameter
in/out Type Name Description
in Push_CallbackType callbackType

미사용. 안드로이드 전용.

in int pushID

onReceivedLocalPush 일 경우 registerLocalpush() 에서 등록한 pushID 이다.

in int remainPushCallback

남은 Callback 수

  • Remark
    not comment
  • Sample Code
void PushCallbackFunc(Push_CallbackType callbackType, int pushID, int remainPushCallbackNum) {

    CS_knlPrintk(" --- > PushCallbackFunc reamainPushNum : %d", remainPushCallbackNum);

    switch(callbackType) {
    case onReceivedGCMPush:
        CS_knlPrintk(" --- > GCM_Push : %d", pushID);
        break;
    case onReceivedLocalPush:
        CS_knlPrintk(" --- > Local_Push : %d", pushID);
        break;
    default:
        CS_knlPrintk(" --- > PushCallback Default : %d, pushID : %d", callbackType, pushID);
        break;
    }
}

Remote Push Notification

void CS_pushStartEx() (Deprecated, C2S.19.6)
  • Description
    푸시 초기화(디바이스 토큰 요청)를 진행합니다. 반드시 약관 동의 이후(ActiveUser 초기화로 did를 전달받은 이후) 호출하셔야합니다.
    C2S.19.6 이후부턴 ActiveUser 초기화 완료 시 Push 관련 기능이 내부적으로 초기화 됩니다.
  • Return Value

void

  • Remark
    3.5.0 이후 버전 사용 가능

 

void CS_hlpPushRegisterTokenEx(void* deviceToken) (Deprecated, C2S.19.6)
  • Description
    자사 Provider 서버에 토큰을 등록 합니다. - (void) application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 에서 호출합니다.
  • Return Value

void

  • Parameter
in/out Type Name Description
in void* deviceToken

(NSData *)deviceToken을 void*로 타입 캐스팅 하여 전달합니다.

  • Remark
    2.2.0이후 버전 사용 가능

 

void CS_hlpPushSendOpen(void* userInfo) (Deprecated, C2S.19.6)
  • Description
    리모트 푸쉬를 통하여 앱을 실행에 대한 로그를 모듈 서버로 전송합니다. - (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 에서 호출합니다.
  • Return Value

void

  • Parameter
in/out Type Name Description
in void* userInfo

(NSDictionary *) userInfo을 void*로 타입 캐스팅 하여 전달합니다.

  • Remark
    3.5.0 이후 버전 사용 가능

 

bool CS_pushSetUid(const char* uid) (Deprecated, C2S.19.6)
  • Description
    로그인/로그아웃 이후, 현재 uid를 푸시 서버로 전송합니다. 로그아웃 시에는 uid를 빈칸("")으로 하여 호출합니다.
  • Return Value

uid 서버 전송 유무

  • Parameter
in/out Type Name Description
in const char* uid

로그인 성공 시 전달받은 uid를 char*로 타입 캐스팅 하여 전달합니다. 로그아웃 시에는 uid를 빈칸("")으로 하여 호출합니다.

  • Remark
    3.5.0 이후 버전 사용 가능

 

void CS_hlpPushUseTestServerEx() (Deprecated, C2S.19.6)
  • Description
    개발 프로비저닝으로 푸쉬 테스트를 하는 경우, 테스트 서버로 토큰을 등록하게 됩니다. (주의! Enterprise 계정은 Product 서버로 전송해야 합니다. CS_hlpPushUseTestServerEx 함수를 호출 하지 마세요.)
  • Return Value

void

  • Remark
    2.2.0이후 버전 사용 가능

 

const char* CS_hlpPushGetVersionEx() (Deprecated, C2S.19.6)
  • Description
    현재의 푸쉬 버전을 리턴하는 함수 입니다.
  • Return Value

푸쉬 버전을 스트링으로 리턴 합니다.

  • Remark
    2.2.0이후 버전 사용 가능

 

const char* CS_PushGetVersion() 
  • Description
    현재의 푸쉬 버전을 리턴하는 함수 입니다.
  • Return Value

푸쉬 버전을 스트링으로 리턴 합니다.

  • Remark
    updated C2S.20.0

Notification On / Off

void CS_pushSetAgree(Push_BoolType notice, Push_BoolType night)
  • Description
    해당 유저의 Push 수신동의 여부를 서버로 전송합니다. 완료/실패 시 별도의 콜백을 제공하지 않습니다.
    3.5.0 이후 반드시 setUid 이후에 호출하셔야 정상진행됩니다.
  • Return Value

void

  • Parameter
in/out Type Name Description
in Push_BoolType notice

공지알림 수신동의 여부

in Push_BoolType night

야간알림 수신동의 여부

  • Remark
    3.2.3이후 버전 사용 가능

 

Push_BoolType CS_pushGetAgreeNotice()
  • Description
    해당 유저의 Push 공지알림 수신동의 여부를 가져옵니다.
    3.5.0 이후 반드시 setUid 이후에 호출하셔야 정상진행됩니다.
  • Return Value

유저의 공지알림 수신동의 여부

  • Remark
    3.2.3이후 버전 사용 가능

 

Push_BoolType CS_pushGetAgreeNight()
  • Description
    해당 유저의 Push 야간알림 수신동의 여부를 가져옵니다.
    3.5.0 이후 반드시 setUid 이후에 호출하셔야 정상진행됩니다.
  • Return Value

유저의 야간알림 수신동의 여부

  • Remark
    3.2.3이후 버전 사용 가능

 

Local Push Notification

void CS_pushRegisterLocalpush(int pushID, char* title, char* msg, char* ticker, char* type, char* icon, char* sound, char* active, long after)
  • Description
    Localpush 를 등록한다. iOS는 pushID, title, msg, sound, after만 지원됩니다. iOS에서는 최대 64개의 로컬 푸시를 등록할 수 있으며, 기기 및 OS 버전에 따라 64개 미만으로 등록 수량이 제한되기도 합니다. 사용 환경별 최대 등록 가능 수량을 초과하는 경우에는 이전에 등록된 푸시들이 자동으로 등록 취소됩니다. (참조)
  • Return Value

void

  • Parameter
in/out Type Name Description
in int pushID

알림에 대한 고유 ID로, 5자리의 양수로 설정해야 한다. 알림을 해지하거나 식별할때 사용한다. 동일한 ID로 Push가 올경우 나중것으로 업데이트 된다.

in char* title

알림에 대한 타이틀 정보로, Notification이나 Dialog 혹은 커스터마이징된 Toast에서 볼 수 있다. (Push v3.5.0 / iOS 8.2 이상)

in char* msg

유저에게 보여줄 Message로 Title에 해당하는 상세한 내용이나 Toast 상태로 노출될때 나타나는 내용이다.

in char* ticker

미사용

in char* type

미사용

in char* icon

미사용

in char* sound

(Optional) 파일명을 넣으면 된다. 없을시 기본 소리로 대체된다.

in char* active

미사용

in long after

(Optional) 현재 시간으로 부터 초단위 after 이후에 Push를 동작하게 한다. 예를 들어 10일 경우 10초 후에 알림이 울리게 된다. long 타입에 주의.

  • Remark
    C# : void registerLocalpush(~)

 

void CS_pushRegisterLocalpushEx(int pushID, char* title, char* msg, char* ticker, char* type, char* icon, char* sound, char* active, long after, char* broadcastAction)
  • Description
    Localpush 를 등록한다. iOS는 pushID, title, msg, sound, after만 지원됩니다. 위의 void CS_pushRegisterLocalpush 의 확장형이지만 broadcastAction은 무시가 된다. CS_pushRegisterLocalpush의 동일 동작한다.
  • Return Value

void

  • Parameter
in/out Type Name Description
in int pushID

알림에 대한 고유 ID로, 5자리의 양수로 설정해야 한다. 알림을 해지하거나 식별할때 사용한다. 동일한 ID로 Push가 올경우 나중것으로 업데이트 된다.

in char* title

알림에 대한 타이틀 정보로, Notification이나 Dialog 혹은 커스터마이징된 Toast에서 볼 수 있다. (Push v3.5.0 / iOS 8.2 이상)

in char* msg

유저에게 보여줄 Message로 Title에 해당하는 상세한 내용이나 Toast 상태로 노출될때 나타나는 내용이다.

in char* ticker

미사용

in char* type

미사용

in char* icon

미사용

in char* sound

(Optional) 파일명을 넣으면 된다. 없을시 기본 소리로 대체된다.

in char* active

미사용

in long after

(Optional) 현재 시간으로 부터 초단위 after 이후에 Push를 동작하게 한다. 예를 들어 10일 경우 10초 후에 알림이 울리게 된다. long 타입에 주의.

in char* broadcastAction

미사용

  • Remark
    C# : void registerLocalpush(~)

 

void CS_pushRegisterLocalpushData(char* jsonPushData)
  • Description

    - Local Push를 등록합니다. 그룹 설정은 해당 API 호출을 통해서만 가능합니다
    - noticeID, title, msg, ticker는 필수로 입력이 필요합니다. (나머지 항목은 optional)

    - C2S.21.0 이상 버전부터 groupId를 설정할 수 있습니다.

  • Return Value

void

  • Parameter
in/out Type Name Description
in char* jsonPushData

- Json 형태로 Local Push 등록 시 필요한 정보를 입력

(key 종류 및 type :

noticeID(String), title(String), msg(String), bigmsg(String), ticker(String), type(String), icon(String), sound(String), active(String), after(Long), buckettype(Int), bucketsize(Int), bigpicture(String), icon_color(String), groupId(String)

)

- buckettype : 한 앱의 여러 push 알림을 모아서 보여줄 형태 (1 : 메시지 라인 개행, 2 : 메시지 개행 없이 노출)
- bucketSize : 한 앱의 여러 push 알림을 모아서 보여줄 갯수
- bigpicture : 이미지 url을 입력할 경우 push 알림에 이미지 노출
- icon_color : 아이콘 색상 설정

- groupId : 푸시를 특정 그룹에 포함하여 노출. 설정하지 않을시 기본 앱그룹에 포함하여 노출
  • Remark
    Unity Plugin : public void registerLocalpush(string jsonPushData)
    Android Native : public void registerLocalpush(String jsonStringValue)

 

void CS_pushUnRegisterLocalpush(int pushID)
  • Description
    pushID 로 등록된 Localpush 를 해지 한다.
  • Return Value

void

  • Parameter
in/out Type Name Description
in int pushID

알림에 대한 고유 ID로, 5자리의 양수로 설정해야 한다. 알림을 해지하거나 식별할때 사용한다.

  • Remark
    C# : void unRegisterLocalpush(int pushID)

 

void CS_pushRegisterCallbackHandler(PushCallback pushCallback)
  • Description
    Push 를 클릭했을 때 Callback 을 받을 수 있는 함수포인터 이다. 필요한 곳에 생성 후 포인터를 넘겨주면된다. Callback을 받을 수 있는 상태일때 선언 해 준다. (Resume 등) 저장된 Callback 신호가 있을 경우, 등록하면 바로 Callback 이 불리게 된다. Callback 에 대한 내용은 하단의 콜백 함수 를 참조.
  • Return Value

void

  • Parameter
in/out Type Name Description
in PushCallback pushCallback

Callback 을 받기 위한 C2SPush.h 에 정의된 함수포인터 이다.

  • Remark
    C# : void registerCallbackHandler(PushCallback pushCallback)

 

void CS_pushRunCallback(void* notification)
  • Description
    Push 를 클릭했을 때 Callback 을 받을 수 있는 함수포인터 이다. 필요한 곳에 생성 후 포인터를 넘겨주면된다. Callback을 받을 수 있는 상태일때 선언 해 준다. (Resume 등) 저장된 Callback 신호가 있을 경우, 등록하면 바로 Callback 이 불리게 된다. Callback 에 대한 내용은 하단의 콜백 함수 를 참조.
  • Return Value

void

  • Parameter
in/out Type Name Description
in void* notification

- (void) application:(UIApplication *) application didReceiveLocalNotification:(UILocalNotification *)notification 의 notification을 void*로 타입 캐스팅하여 모듈로 전달. 로컬 푸쉬 콜백(*PushCallback) 이 호출된다.

  • Remark
    C# : void registerCallbackHandler(PushCallback pushCallback)

 

Foreground Notification On / Off (iOS 10 이상)

void CS_pushSetUNUserNotification() (Deprecated, C2S.19.6)
  • Description
    Foreground Notification을 사용하기 위해 UNUserNotification을 세팅하는 초기화 함수. 기존 Push Notification 등록하는 부분에서 iOS 10 이상에서는 이 함수를 호출하도록 수정.
  • Return Value

void

  • Remark
    3.3.0 이후 버전 사용 가능

 

void CS_pushSetForeground(Push_BoolType remote, Push_BoolType local)
  • Description
    앱이 실행중일 때 Push 알림을 동작 하게 할지 안 할지를 결정한다. Default 는 True 이며, false 일 경우 어플이 실행중에는 알림이 동작하지 않는다.
  • Return Value

void

  • Parameter
in/out Type Name Description
in Push_BoolType remote

앱 실행 중 Remote 푸시 노출 여부

in Push_BoolType local

앱 실행 중 Local 푸시 노출 여부

  • Remark
    3.3.0 이후 버전 사용 가능

 

Push_BoolType CS_pushGetForegroundRemote()
  • Description
    앱 실행 중 Remote 푸시 노출 여부로 저장되어 있는 값을 불러 온다. default YES
  • Return Value

앱 실행 중 Remote 푸시 노출 여부

  • Remark
    3.3.0 이후 버전 사용 가능

 

Push_BoolType CS_pushGetForegroundLocal()
  • Description
    앱 실행 중 Local 푸시 노출 여부로 저장되어 있는 값을 불러 온다. default YES
  • Return Value

앱 실행 중 Local 푸시 노출 여부

  • Remark
    3.3.0 이후 버전 사용 가능

 

Request Push Permission

void CS_pushRequestPermission()
  • Description
    유저가 푸시 전송 동의 여부를 설정하지 않은 상태라면 신규 API를 호출하여 유저에게 푸시 전송 동의 팝업을 노출할 수 있습니다. Provisional Authorization을 활용하여 Hive SDK 약관 동의에 대한 묵시적 권한 동의를 받은 경우라도 푸시 전송 동의 팝업이 노출되며, 푸시 전송에 동의한 유저에게는 명시적으로 푸시 메시지가 노출됩니다.
    단, CS_pushStartEx() API를 호출하여 적어도 한 번은 초기화를 완료한 이후에만 적용할 수 있습니다. (C2S.19.6 이후부터턴 CS_pushStartEx()를 더이상 사용할 수 없으므로 ActiveUser 초기화 완료 뒤에 사용 가능합니다.)
    명시적 푸시 권한과 관련된 권한 동작은 권한 고지 및 요청 변경사항 정리 FAQ 내용을 참고 바랍니다.
  • Return Value

void

  • Remark
    3.6.2 이후 버전 사용 가능
    Unity Plugin(C#) : void requetPermission()