API Class Guide(iOS)문서 이력관리개요네트워크 요청 및 결과처리PMSConfig.h라이브러리의 설정(옵션) 변경+(void)setAppKey:(NSString*)appKey;+(void)setApiUrl:(NSString*)apiUrl;+(void)setReattemptCount:(int)reattempt;+(void)setNetworkTimeout:(float)netTimeout;+(void)setMsgApiVersionMajor:(int)major minor:(int)minor patch:(int)patch;+(void)setPerPage:(int)perPage;+(void)cryptEnable:(BOOL)enable;+(void)logEnable:(BOOL)enable;+(void)apiLogEnable:(BOOL)enable;+(void)coreLogEnable:(BOOL)enable;+(void)setTimerInterval:(float)interval;+(void)useMsgDB:(BOOL)use;+(void)usePushTokenToUUID:(BOOL)uuidOption;+(void)saveCustIdOnDB:(BOOL)saveOnDB;+(void)enableInvalidSSL:(BOOL)enable;+(void)noTokenBlocking:(BOOL)enable;+(void)locationMode:(BOOL)enable;PMS.h단말기 인증+(void)deviceCert;+(void)deviceCertWithCompleteBlock:(void ( ^ )(PMSResult *result))complete;+(void)deviceCertWithCustId:(NSString *)custId UserData:(NSDictionary *)userData CompleteBlock:(void ( ^ )(PMSResult *result))complete;로그인 & 로그아웃+(void)loginWithCustId:(NSString*)custId CompleteBlock:(void ( ^ )(PMSResult *result))complete;+(void)loginWithCustId:(NSString*)custId UserData:(NSDictionary *)userData CompleteBlock:(void ( ^ )(PMSResult *result))complete;+(void)logoutWithCompleteBlock:(void ( ^ )(PMSResult *result))complete;+(NSString*)getLoginedCustId;푸시 수신여부 변경 및 확인+(void)setConfigWithNotiFlag:(BOOL)notiFlag MsgFlag:(BOOL)msgFlag CompleteBlock:(void ( ^ )(PMSResult *result))complete;+(void)setConfigWithNotiFlag:(BOOL)notiFlag MsgFlag:(BOOL)msgFlag MktFlag:(BOOL)mktFlag CompleteBlock:(void ( ^ )(PMSResult *result))complete;+(void)setConfigWithNotiFlag:(BOOL)notiFlag MsgFlag:(BOOL)msgFlag MktFlag:(BOOL)mktFlag EtqStartHour:(int)etqStartHour EtqStartMin:(int)etqStartMin EtqEndHour:(int)etqEndHour EtqEndMin:(int)etqEndMin CompleteBlock:(void (^)(PMSResult *result))complete;+(void)setNotiFlag:(BOOL)notiFlag CompleteBlock:(void ( ^ )(PMSResult *result))complete;+(void)setMsgFlag:(BOOL)msgFlag CompleteBlock:(void ( ^ )(PMSResult *result))complete;+(void)setMktFlag:(BOOL)mktFlag CompleteBlock:(void ( ^ )(PMSResult *result))complete;+(void)setEtqStartHour:(int)etqStartHour EtqStartMin:(int)etqStartMin CompleteBlock:(void (^)(PMSResult *result))complete;+(void)setEtqEndHour:(int)etqEndHour EtqEndMin:(int)etqEndMin CompleteBlock:(void (^)(PMSResult *result))complete;+(void)setEtqStartHour:(int)etqStartHour EtqStartMin:(int)etqStartMin EtqEndHour:(int)etqEndHour EtqEndMin:(int)etqEndMin CompleteBlock:(void (^)(PMSResult *result))complete;+(void)getConfigFlagsWithCompleteBlock:(void ( ^ )(PMSResult *result, BOOL notiFlag, BOOL msgFlag))complete;+(void)getConfigFlagsWithCompleteBlockV2:(void ( ^ )(PMSResult *result, BOOL notiFlag, BOOL msgFlag, BOOL mktFlag))complete;+(void)getConfigFlagsWithCompleteBlockV3:(void ( ^ )(PMSResult *result, BOOL notiFlag, BOOL msgFlag, BOOL mktFlag, int startHour, int startMin, int endHour, int endMin))complete;+(BOOL)getNotiFlag;+(BOOL)getMsgFlag;+(BOOL)getMktFlag;+(int)getEtqStartHour;+(int)getEtqStartMin;+(int)getEtqEndHour;+(int)getEtqEndMin;메시지 개수확인+(int)getUnreadMessageCount;+(void)getUnreadMessageCountWithCompleteBlock:(void ( ^ )(PMSResult *result, int unreadMsgCount))complete;+(int)getNewMessageCountWithGrpCode:(NSString*)grpCode;+(int)getMessageCountWithGrpCode:(NSString*)grpCode;메시지 단건 조회+(void)getMessageWithMsgId:(NSString*)msgId IsStandalone:(BOOL)isStandalone CompleteBlock:(void ( ^ )(PMSModelMessage *resultModel))complete;+(void)getMessageWithUserMsgId:(NSString*)userMsgId IsStandalone:(BOOL)isStandalone CompleteBlock:(void ( ^ )(PMSModelMessage *resultModel))complete;메시지 리스트 조회+(NSArray*)loadMsgListWithGrpCode:(NSString *)grpCode CompleteBlock:(void ( ^ )(PMSResult *result, NSArray *msgArray))complete;+(NSArray*)loadMsgListWithGrpCode:(NSString *)grpCode Page:(int)page PerPage:(int)perPage CompleteBlock:(void ( ^ )(PMSResult *result, NSArray *msgArray))complete;+(NSArray*)loadGrpListWithCompleteBlock:(void ( ^ )(PMSResult *result, NSArray *groupArray))complete;+(NSArray*)loadDeletedMsgListWithGrpCode:(NSString *)grpCode;+(NSArray*)loadDeletedMsgListWithGrpCode:(NSString *)grpCode page:(int)page PerPage:(int)perPage;메시지 삭제 및 복구+(void)restoreMsgWithUserMsgId:(NSString*)userMsgId;+(void)restoreMsgWithUserMsgIds:(NSArray*)userMsgIds;+(void)restoreMsgWithMsgId:(NSString*)msgId;+(void)restoreMsgWithMsgIds:(NSArray*)msgIds;+(void)deleteMsgWithUserMsgId:(NSString*)userMsgId;+(void)deleteMsgWithUserMsgIds:(NSArray*)userMsgIds;+(void)deleteMsgWithMsgId:(NSString*)msgId;+(void)deleteMsgWithMsgIds:(NSArray*)msgIds;+(void)deleteMsgGroupWithGrpCode:(NSString*)grpCode;+(void)calibrationMsgBoxWithCompleteBlock:(void ( ^ )(PMSResult *result))complete;메시지 카운트+(void)resetNewCountWithGrpCode:(NSString*)grpCode;읽음 및 클릭 이벤트전송+(void)sendReadMsgEventWithMsgId:(NSString*)msgId;+(void)sendReadMsgEventWithMsgIdArr:(NSArray*)msgIdArr;+(void)sendReadMsgEventWithUserMsgId:(NSString*)userMsgId;+(void)sendReadMsgEventWithUserMsgIdArr:(NSArray*)userMsgIdArr;+(void)startAllBatchEventManualy;+(void)sendReadMsgEventWithMsgId:(NSString*)msgId CompleteBlock:(void ( ^ )(PMSResult *result))complete;+(void)sendReadMsgEventWithMsgIdArr:(NSArray*)msgIdArr CompleteBlock:(void ( ^ )(PMSResult *result))complete;+(void)sendReadMsgEventWithUserMsgId:(NSString*)userMsgId CompleteBlock:(void ( ^ )(PMSResult *result))complete;+(void)sendReadMsgEventWithUserMsgIdArr:(NSArray*)userMsgIdArr CompleteBlock:(void ( ^ )(PMSResult *result))complete;+(void)sendClickMsgEventWithMsgId:(NSString*)msgId PushType:(NSString *)pushType LinkSeq:(NSString *)linkSeq;+(void)sendClickMsgEventWithMsgId:(NSString*)msgId PushType:(NSString *)pushType LinkSeqs:(NSArray *)linkSeqs;+(void)sendClickMsgEventWithMsgId:(NSString*)msgId PushType:(NSString *)pushType LinkSeqs:(NSArray *)linkSeqs CompleteBlock:(void ( ^ )(PMSResult *result, NSArray *successIds))complete;라이브러리 상태값 확인+(BOOL)isReadyForUse;+(NSString*)getPmsUUID;+(NSString*)getPushToken;+(NSString*)getPmsVersion;+(BOOL)isAdvancedTrackable;리치푸시 클릭전송+(BOOL)replaceAnchorTagForPMSClick:(UIWebView*)targetWebview;+(BOOL)isPmsClickRequest:(NSURLRequest*)request;+(NSURLRequest*)clickMsgProcess:(NSURLRequest *)request;+(NSURLRequest*)clickMsgProcess:(NSURLRequest *)request directSend:(BOOL)sendDirect;TAS.hTAS 서비스+(void)serviceStart+ (void)identifyUser:(NSString)userId userProp:(NSDictionary)userProp;+(void)identifyUser:(NSString)userId email:(NSString)email phone:(NSString)phone userProp:(NSDictionary)userProp;+(void)logEvent:(NSString)eventName params:(NSDictionary)params;+ (void)logEvent:(NSDictionary*)params;+ (void)logPageViewEvent:(NSString*)pagename;+ (void)logCartEvent:(NSArray)tags value:(NSString)value;+ (void)logCartAbandonEvent:(NSArray*)tags;+ (void)logPurchaseEvent:(NSArray)tags value:(NSString)value;
- 2017.08.28 / 성시준 : locationMode 설명 추가
- 2016.02.02 / 김두민 : NotiFlag, MktFlag 설명 추가
- 2016.01.26 / 김두민 : 에티켓 기능 설명 추가
- 2016.01.19 / 김두민 : 에티켓 기능 추가
- 2015.10.08 / 김두민 : 마케팅 수신 동의 추가
- 2015.07.17 / 김두민 : 리치푸시 클릭처리 추가
- 2015.03.27 / 김두민 : 문서 포맷 변경
- 2015.03.13 / 김두민 : v3.0.5 패치내용 반영
- 2015.02.02 / 김두민 : 초안작성
로컬 단말에 값을 저장하거나, 반환하는 경우에는 parameter로 전달하고 바로 return 해줍니다.
네트워크 통신을 통해 서버와 동기화 되어야 하는 경우에는 PMSDelegate나 Block code로 결과를 수신합니다.
PMSDelegate로 네트워크 요청결과를 수신하는 경우에는 결과를 처리할 PMSDelegate를 구현한다
Block code로 네트워크 요청결과를 수신하는 경우
PMSResult를 이용하여 통신 결과를 확인하고, 추가 결과값들을 전달받아 동작하도록 앱을 구현한다.
PMSResult : 통신 결과를 확인
PMSResult를 상속받는 기타 Data Model들도 동일한 방식으로 사용한다.
PMS에서 발급받은 AppKey 설정. 해당 메소드로 앱키를 설정할 경우 plist에서 설정한 값은 무시됩니다.
return : void
params :
MsgApiUrl설정. 해당 메소드로 앱키를 설정할 경우 plist에서 설정한 값은 무시됩니다.
return : void
params :
라이브러리에서 발생하는 네트워크 요청 실패시 최대 재시도 요청 횟수 (재시도는 0~10회까지 가능) / -1 = 10번 까지 재시도
return : void
params :
라이브러리내부에서 발생하는 네트워크 요청의 타임아웃 시간 설정. 0.5초~5분까지 가능
return : void
params :
MsgApi의 버전 설정 Major.Minor.Patch.
return : void
params : (Default = 2.0.5)
서버에서 메시지를 가져올때 한번에 최대 몇개까지 가져 올 것인지 설정 - return : void
params :
암호화 및 Gzip 사용여부를 설정
return : void
params :
PMS 기본로그를 출력하도록 설정하는 기능
return : void
params :
MsgApi(네트워크 통신)로그를 출력하도록 설정하는 기능
return : void
params :
PMSCore 로그를 출력하도록 설정하는 기능
return : void
params :
readMsg, clickMsg의 Batch timer interval설정 - return : void
params :
메시지를 DB에 저장할 것인지에 대한 여부 결정.
return : void
params :
Push토큰이 있는 경우 해당 토큰을 UUID로 사용할 것인지 결정.
해당 옵션을 사용할 경우 APNS에서 Push토큰을 발급받지 못한 경우 PMS사용이 제한됩니다. (단말 등록 및 모든 통신 시도하지 않음)
return : void
params :
custId를 DB에 저장할 것인지 옵션변경.
NO로 변경할 경우 메모리에 적재하여 사용. NO인 상태로 앱 종료시 로그인했던 custId확인 불가 (로그아웃되어 있는것으로 표시)
return : void
params :
비정상적인 SSL통신 인증서 허용여부 결정.
해당 옵션을 사용할 경우 MsgApi 서버의 SSL인증서가 invalid하여도 통신 가능
return : void
params :
APNs 푸시 허용을 하지 않은 사용자는 수집되지 않도록 함
해당 옵션을 사용할 경우 푸시허용가능한 사용자만 수집 됨
return : void
params :
TAS 위치정보 공유 여부를 설정함
해당 옵션을 사용할 경우 푸시메시지를 읽은 위치가 수집 됩
return : void
params:
단말기 인증을 시작함, 결과는 Delegate로 반환
단말기 인증. 결과는 코드블럭으로 수신하고, Delegate는 호출해주지 않음
return : void
params :
사용자 아이디와 UserData를 전송하며 단말기 인증 (단말기 인증+로그인). 결과는 코드블럭으로 수신하고, Delegate는 호출해주지 않음
return : void
params :
로그인 요청과 로그인 성공여부를 코드블럭의 result모델로 반환
return : void
params :
로그인 요청(사용자 정보와 함께)과 로그인 성공여부를 코드블럭의 result모델로 반환, UserData Dictionary 형태는 아래 확인
userData를 전송할때 반드시 custId도 함께 전송해야 함
return : void
params :
로그아웃 요청과 성공여부를 코드블럭의 result모델로 반환
return : void
params :
PMS에 로그인한 사용자 아이디 반환
notiFlag와 msgFlag 두가지 설정 값을 동시에 변경
return : void
params :
notiFlag와 msgFlag, mktFlag 세가지 설정 값을 동시에 변경
return : void
params :
notiFlag와 msgFlag, mktFlag, 에티켓시간 네가지 설정 값을 동시에 변경
return : void
params :
NotiFlag 설정만 변경
return : void
params :
notiFlag - 알림 설정 여부
complete - 통신 완료후 수행할 동작 (Code Block)
MsgFlag 설정만 변경
return : void
params :
msgFlag - 메시지함 적재 여부
complete - 통신 완료후 수행할 동작 (Code Block)
MktFlag 설정만 변경
return : void
params :
mktFlag - 마케팅 수신 동의 여부
complete - 통신 완료후 수행할 동작 (Code Block)
에티켓 시작 시간만 변경 (에티켓 시간동안 푸시 허용하지 않음)
return : void
params :
etqStartHour - 에티켓 시작 시간 (0~23)
etqStartMin - 에티켓 시작 분 (0~59)
complete - 통신 완료후 수행할 동작 (Code Block)
에티켓 종료 시간만 변경 (에티켓 시간동안 푸시 허용하지 않음)
return : void
params :
etqEndHour - 에티켓 시작 시간 (0~23)
etqEndMin - 에티켓 시작 분 (0~59)
complete - 통신 완료후 수행할 동작 (Code Block)
에티켓시간 변경 (에티켓 시간동안 푸시 허용하지 않음)
return : void
params :
etqStartHour - 에티켓 시작 시간 (0~23)
etqStartMin - 에티켓 시작 분 (0~59)
etqEndHour - 에티켓 시작 시간 (0~23)
etqEndMin - 에티켓 시작 분 (0~59)
complete - 통신 완료후 수행할 동작 (Code Block)
서버에 설정되어 있는 푸시 수신여부 설정값을 받아옴 (에티켓 시간동안 푸시 허용하지 않음)
return : void
params :
complete - 통신 완료후 수행할 동작 (Code Block)
서버에 설정되어 있는 푸시 수신여부 설정값을 받아옴 (v3.0.17이후 마케팅 수신동의 여부 추가된 V2 함수)
return : void
params :
complete - 통신 완료후 수행할 동작 (Code Block)
서버에 설정되어 있는 푸시 수신여부 설정값을 받아옴 (v3.0.17이후 마케팅 수신동의 여부 추가된 V2 함수)
return : void
params :
complete - 통신 완료후 수행할 동작 (Code Block)
로컬에 저장되어 있는 (정보성)푸시 수신여부 설정값을 받아옴
로컬에 저장되어 있는 메시지함 수신여부 설정값을 받아옴
로컬에 저장되어 있는 마케팅 수신동의 여부 설정값을 받아옴
로컬에 저장되어 있는 에티켓 시작시간 (시간)
로컬에 저장되어 있는 에티켓 시작시간 (분)
로컬에 저장되어 있는 에티켓 종료시간 (시간)
로컬에 저장되어 있는 에티켓 종료시간 (분)
읽지 않음으로 표시된 메시지 개수 확인. 로컬 DB에 저장되어 있는 값을 기준으로 조회
읽지 않음로 표시된 메시지 개수 확인. 네트워크 요청을 통해 서버상에 읽지 않음으로 표시되어 있는 개수를 조회
return : void
params :
complete - 통신 완료후 수행할 동작 (Code Block)
서버에서 새로 받아온 메시지 개수 확인
return : int - 새로 받아온 메시지 개수
params :
메시지 개수 확인
return : int - 메시지함에 적재되어 있는 메시지 개수
params :
메시지 아이디를 이용해서 메시지 단건조회
return : void
params :
isStandalone - YES일 경우 DB에 적재 하지 않고 서버에 메시지만 조회, NO일경우 새로운 메시지를 모두 로컬DB에 적재한 후 조회
complete - 통신 완료후 수행할 동작 (Code Block)
유저 메시지 아이디를 이용해서 메시지 단건조회
return : void
params :
isStandalone - YES일 경우 DB에 적재 하지 않고 서버에 메시지만 조회, NO일경우 새로운 메시지를 모두 로컬DB에 적재한 후 조회
complete - 통신 완료후 수행할 동작 (Code Block)
메시지 리스트 전체를 조회. 페이지 없이 모두 반환하기 때문에 가급적 사용하지 않는다.
complete == nil -> 로컬에 저장되어 있는 메시지 리스트 반환
complete != nil -> 네트워크를 통해 조회한후 통신 완료후 complete블럭 호출
return : NSArray - 로컬에서 조회한 메시지 리스트
params :
grpCode - 조회하려는 그룹의 코드 (nil일 경우 전체 메시지 기준)
complete - 통신 완료후 수행할 동작 (Code Block)
메시지 리스트를 페이징하며 조회
complete == nil -> 로컬에 저장되어 있는 메시지 리스트 반환
complete != nil -> 페이지가 1일 경우 네트워크 통신 완료후 complete블럭 호출, 2페이지 부터는 로컬에 저장되어 있는 메시지 리스트 반환
return : NSArray - 로컬에서 조회한 메시지 리스트
params :
grpCode - 조회하려는 그룹의 코드 (nil일 경우 전체 메시지 기준)
page - 조회할 페이지
perPage - 페이지당 조회할 메시지 개수
complete - 통신 완료후 수행할 동작 (Code Block)
그룹리스트 조회
complete == nil -> 로컬에 저장되어 있는 그룹 리스트 반환
complete != nil -> 페이지가 1일 경우 네트워크 통신 완료후 complete블럭 호출, 2페이지 부터는 로컬에 저장되어 있는 그룹 리스트 반환
return : NSArray - 로컬에서 조회한 그룹 리스트
params :
complete - 통신 완료후 수행할 동작 (Code Block)
삭제된 메시지 리스트 조회. 삭제는 로컬 기준이며 서버와 동기화 되지 않음
return : NSArray - 삭제된 메시지 모델 리스트
params :
페이징하며 삭제된 메시지 리스트 조회
return : NSArray - 삭제된 메시지 모델 리스트
params :
삭제된 메시지를 다시 복구시킴 (유저 메시지 아이디)
return : void
params :
삭제된 메시지를 다시 복구시킴 (유저 메시지 아이디 배열)
return : void
params :
삭제된 메시지를 다시 복구시킴 (메시지 아이디)
return : void
params :
삭제된 메시지를 다시 복구시킴 (메시지 아이디 배열)
return : void
params :
메시지 삭제 (유저 메시지 아이디)
return : void
params :
메시지 삭제 (유저 메시지 아이디 배열)
return : void
params :
메시지 삭제 (메시지 아이디)
return : void
params :
메시지 삭제 (메시지 아이디 배열)
return : void
params :
그룹에 해당하는 메시지 모두 삭제
return : void
params :
모든 메시지를 삭제하고 다시 받아옴 (서버부하 발생할 소지 있기 때문에 개발시에만 활용)
return : void
params :
새로 받아온 메시지 카운트를 0으로 변경함
return : void
params :
읽음처리 Batch (메시지 아이디)
return : void
params :
읽음처리 Batch (메시지 아이디 배열)
return : void
params :
읽음처리 Batch (유저 메시지 아이디)
return : void
params :
읽음처리 Batch (유저 메시지 아이디 배열)
return : void
params :
타이머 무시하고 배치작업 강제 시작
읽음처리를 바로 요청 (메시지 아이디)
return : void
params :
읽음처리를 바로 요청 (메시지 아이디 배열)
return : void
params :
읽음처리를 바로 요청 (유저 메시지 아이디)
return : void
params :
읽음처리를 바로 요청 (유저 메시지 아이디 배열)
return : void
params :
클릭 이벤트 전송 Batch
return : void
params :
클릭 이벤트 전송 Batch
return : void
params :
클릭 이벤트 바로 전송
return : void
params :
msgId - 클릭 처리할 메시지 아이디
pushType - 클릭을 발생시키는 메시지의 타입 (P or M, 'P'는 push, 'M'은 msg)
linkSeq - 클릭된 anchor 태그의 번호 배열 (NSString[])
complete - 통신 완료후 수행할 동작 (Code Block)
해당 단말이 서버에 등록되었는지 확인
사용하고 있는 단말의 UUID 확인 (유사시에만 사용)
설정된 APNS push token
SDK 버전 확인
고급 트래킹 기능 사용 가능 여부 확인
해당 단말이 서버에 등록되었는지 확인
해당 NSURLRequest가 PMS에서 클릭처리 가능한 링크인지 확인
return : BOOL - 클릭처리 가능여부
params :
PMS링크인경우 클릭전송
요청받은 클릭들은 Batch로 서버에 전송
return : NSURLRequest - 이동할 페이지 NSURLRequest
params :
PMS링크인경우 클릭전송
return : NSURLRequest - 이동할 페이지 NSURLRequest
params :
TAS 서비스 시작
앱사용자 식별. 사용자 로그인, 사용자 정보 변경
return : userid
params :
앱사용자 식별. 사용자 로그인, 사용자 정보 변경
return : userid
params :
사용자 정의 이벤트 수집함수
return : void
params :
사용자 정의 이벤트 수집함수
return : void
params :
화면 정보 수집함수
return : void
params :
커머스 정보 수집 (장바구니 담기)
return : void
params :
커머스 정보 수집 (장바구니 비우기)
return : void
params :
커머스 정보 수집 (결제)
return : void
params :