iOS SDK Manual
프로젝트 설정
기기버전관리
Push Notification의 Entitlements가 설정
핑거푸시서버 연동
– 핑거푸시 APP KEY 설정 (개발용 DeviceToken 과 배포용 DeviceToken 이 섞이지 않도록 주의해 주십시오.)
/*** AppDelegate에 핑거푸시서버와 연동을 하기 위해서 다음과 같이 설정합니다. ***/ #import <finger/finger.h> //핑거푸시 -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { finger *_fingerManager = [finger sharedData]; //싱글톤 객체로 사용 #ifdef DEBUG //개발용 앱 [_fingerManager setAppKey:@”발급받은 앱키"]; //App Key [_fingerManager setAppScrete:@“발급받은 앱시크리트키"]; //AppScrete #else //배포용 앱 [_fingerManager setAppKey:@”발급받은 앱키"]; //App Key [_fingerManager setAppScrete:@“발급받은 앱시크리트키"]; //AppScrete #endif .. .. }
– 핑거푸시에 기기등록 (DeviceToken 은 OS에 의해 변경될 수 있습니다. 따라서, 앱 실행시마다 호출해야 합니다.)
//기기등록 -(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { //핑거푸시의 모든 api를 사용하기 위해서 기기등록 우선 [[finger sharedData] registerUserWithBlock:deviceToken :^(NSString *posts, NSError *error) { if (!error) { NSLog(@"기기등록 %@", posts); }else{ //이미등록(504, 201) 무시. NSLog(@"기기등록 error %@", error); } }]; }
– 푸시 메세지수신 시 메세지오픈/읽음 처리
//메세지 오픈 및 읽음 처리 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler { //참고 : 메세지 정보 확인 NSDictionary* dicCode = [finger receviveCode:userInfo]; NSString *strPT = [dicCode objectForKey:@"PT"]; //메세지타입 - DEFT(일반) , STOS (서버투서버), LNGT(롱푸시) NSString *strIM = [dicCode objectForKey:@"IM"]; //이미지 여부 (0: 이미지 미포함 , 1: 이미지 포함) NSString *strWL = [dicCode objectForKey:@"WL"]; //웹링크 여부 (0: 웹링크 미포함 , 1: 웹링크 포함) //메세지 읽음 처리 [[finger sharedData] requestPushCheckWithBlock:userInfo :^(NSString *posts, NSError *error) { if (!error) { NSLog(@"check : %@", posts); }else{ NSLog(@"check error %@", error); } )]; }
– 푸시 수신 데이터(Payload)
{ aps = { alert = { body = "안녕하세요. 핑거푸시입니다"; title = "메세지 제목입니다."; }; badge = 0; // 뱃지 카운트 category = fp; // 메세지 카테고리 "mutable-content" = 1; // notification service extension 사용 여부(이미지와 웹 링크 추가시) sound = default; // 사운드 }; 커스텀 데이터 키1 = 커스텀 데이터 값1; 커스텀 데이터 키2 = 커스텀 데이터 값2; 커스텀 데이터 키3 = 커스텀 데이터 값3; code = "CD:1;IM:1;WL:1;PT:STOS"; // ( CD : 커스텀 데이터 여부(0 : 없음, 1 : 있음), IM : 이미지 첨부 여부(0 : 없음, 1 : 있음), WL : 웹 링크 여부(0 : 없음, 1 : 있음), PT : 메세지 타입(DEFT:일반푸시, STOS:Server to Server, LNGT:롱푸시)) imgUrl = "http://..."; // 이미지 URL labelCode = ""; // 라벨 코드 msgTag = ...; // 메세지 고유 번호 weblink = "http://www.google.com"; // 웹 링크 }
※ 푸시 수신 데이터(Payload) Apple 개발자 사이트 참조 링크 [페이지 이동]
API 연동 결과 코드
코드 | 내용 | 비고 |
---|---|---|
200 | 정상처리 | |
403 | App_key, secret 오류, 권한없음 | |
404 | 조회 대상 없음, 조회 결과 없음 | |
500 | 처리 중 에러 | |
503 | 필수 값 없음 | |
504 | 이미 등록된 토큰 | 디바이스 등록에서만 사용 |