iPhone
APNS 를 위한 Device Token 알아내기
Min-gu, Kim
2010. 9. 6. 17:27
APNS(Apple Push Notification Service)를 하기 위해서, 어플을 설치한 각 디바이스에서 Device Token 을 알아야 하는데요.
이 Device Token 을 알 수 있는 방법은 다음과 같습니다.
1. 어플 사용자가 APS(Apple Push Service) 를 이용하겠다는 동의를 해야 한다.
2. 어플리케이션 delegate 에서 UIApplicationDelegate 내 함수 (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 을 구현한다.
바로 2번 항목에서 (NSData *)deviceToken 이라는 파라미터로 Device Token 이 들어옵니다. 이 때, Device Token 은 퍼포먼스 때문에 바이너리 포맷으로 전달 된다고 하네요.
1. APS Register
어플 사용자가 APS 를 이용하겠다는 동의를 해야 한다고 했는데요, 이를 위해서 -(BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 에서 다음 코드를 추가 하시면 어플이 설치 되고 처음 실행 될 때 APS 를 이용하겠는지의 여부를 묻게 됩니다. (이 메시지는 처음에만 묻고, 그 뒤로는 다시 묻지 않습니다. 설정 변경은 일반 설정에서 On / Off 하실 수 있습니다.)
코드
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[window addSubview:[nav view]];
[window makeKeyAndVisible];
// APS Register
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
UIRemoteNotificationTypeAlert |
UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound ];
return YES;
}
2. Device Token 얻기
어플리케이션 delegate 에서 UIApplicationDelegate 내 함수 (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 을 구현을 하면, 어플이 처음 실행 될 때 다음 코드를 타게 됩니다. 이 때, Device Token 을 얻으 실 수 있습니다. (전역으로 두셨다가 필요하실 때 쓰시면 되겠네요)
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSLog(@"Device Token : %@" ,deviceToken);
}