5. IOS 클라이언트 연동
iES SDK의 사용법을 설명합니다.
본 사이트의 샘플 다운로드 페이지에서 iES IOS SAMPLE 다운로드
버튼을 클릭해 샘플소스를 다운로드 합니다.
SDK 초기화
Project 폴더 > iES_Lib.framework 파일을 복사합니다.
Project > TARGETS > Build Phases > Link Binary With Libraries 에서 iES_Lib.framework 추가합니다.
PUSH 수신 설정
- iES 서비스를 이용하기 위해서는 PSUH 수신이 필요 합니다.
아래는 PUSH 수신을 위한 예제 코드 입니다.
#import <PASSIPAD_Lib/PASSIPADManager.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
..
..
//푸쉬 알림 등록 필수
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)])
{
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound |
UIUserNotificationTypeAlert)
categories:nil];
[application registerUserNotificationSettings:settings];
[application registerForRemoteNotifications];
}
else
{
UIRemoteNotificationType myTypes = UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;
[application registerForRemoteNotificationTypes:myTypes];
}
// 이전 파트너사 등록이 되어 있는 경우 설정
NSString *partnerCode = [[PASSIPADManager shared] getPartnerCode];
if(partnerCode != nil)
[[PASSIPADManager shared] setWithAppType:[NSString stringWithFormat:@"%@",partnerCode]];
return YES;
}
APNS에 장치 등록 성공시 호출되는 콜백
//APNS에 장치 등록 성공시 호출되는 콜백
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
NSMutableString *deviceId = [NSMutableString string];
const unsigned char* ptr = (const unsigned char*) [deviceToken bytes];
for(NSInteger i = 0 ; i < 32 ; i++)
{
[deviceId appendFormat:@"%02x", ptr[i]];
}
NSLog(@"Token : %@", deviceId);
[[NSUserDefaults standardUserDefaults] setObject:deviceId forKey:@"pushToken"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
push 수신 후 데이터 처리
//push 수신 후 데이터 처리
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
application.applicationIconBadgeNumber = 0;
[CommonUtil showAlert:@"Push가 수신되었습니다"];
NSLog(@"didReceiveRemoteNotification userInfo : %@", userInfo);
NSString *str_Val = [userInfo objectForKey:@"spinpad"];
if( str_Val && str_Val.length > 0 )
{
NSError *error = nil;
NSData *data = [str_Val dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *dic_Val = [NSJSONSerialization JSONObjectWithData:data
options:kNilOptions
error:&error];
id spinPad = [dic_Val objectForKey:@"spinpad"];
if( spinPad != nil )
{
data = [spinPad dataUsingEncoding:NSUTF8StringEncoding];
dic_Val = [NSJSONSerialization JSONObjectWithData:data
options:kNilOptions
error:&error];
NSLog(@"spinpad pushInfo : %@", dic_Val);
[[PASSIPADManager shared] setReceivePushData:dic_Val];
UINavigationController *navi = (UINavigationController*)[[AppDelegate get].window rootViewController];
ViewController *controller = (ViewController*)navi.topViewController;
if( [controller respondsToSelector:@selector(checkBioAuth)] )
[controller checkBioAuth];
}
}
}