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];

        }
    }
}