[ios 강좌] ios 푸시 알림 2부 - 클라이언트 개발
이번 강좌에서는 ios 의 푸시 알림 2부의 클라이언트 개발을 알아보도록 하겠습니다.
ios 푸시 알림 1부 - 개발자 계정 세팅
ios 푸시 알림 2부 - 클라이언트 개발
ios 푸시 알림 3부 - APN 테스트
========================================================================================
1. Xcode를 열고 푸시 세팅을 해줍니다.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ93UJdnejIwOCnuRgh7Qr2nfZkBjYATbcp2OBHcJuiOWLYY0FYUzu8LDeYvCIZg8ayD6dMbxuJj90mEDDyP4gT09WSxif4QajI_a8e9l43ml_rE1Yy3So7qerBk9H5wdYeCpPg_DX13xI/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2017-09-28+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.36.03.png)
========================================================================================
2. AppDelegate.m 파일을 열고, 푸시 코드를 등록합니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
-> 앱이 시작될때
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
-> 푸시 서버에 토큰을 등록했을 때
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
-> 푸시 서버에 등록을 못했을 때
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
-> 푸시 알림을 받았을때
-----------------------------------------------------------------------------------------------------------
1. Xcode를 열고 푸시 세팅을 해줍니다.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ93UJdnejIwOCnuRgh7Qr2nfZkBjYATbcp2OBHcJuiOWLYY0FYUzu8LDeYvCIZg8ayD6dMbxuJj90mEDDyP4gT09WSxif4QajI_a8e9l43ml_rE1Yy3So7qerBk9H5wdYeCpPg_DX13xI/s400/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2017-09-28+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.36.03.png)
========================================================================================
2. AppDelegate.m 파일을 열고, 푸시 코드를 등록합니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
-> 앱이 시작될때
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
-> 푸시 서버에 토큰을 등록했을 때
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
-> 푸시 서버에 등록을 못했을 때
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
-> 푸시 알림을 받았을때
-----------------------------------------------------------------------------------------------------------
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
if (launchOptions && [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]) {
// 1번 상태에서 push 수신
}
if ([application respondsToSelector:@selector(isRegisteredForRemoteNotifications)])
{
// iOS 8 Notifications
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
[application registerForRemoteNotifications];
}
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSLog(@"didRegisterForRemoteNotificationsWithDeviceToken: %@", deviceToken);
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
NSLog(@"didFailToRegisterForRemoteNotificationsWithError: %@", error);
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler NS_AVAILABLE_IOS(7_0)
{
completionHandler(UIBackgroundFetchResultNoData);
if (application.applicationState == UIApplicationStateActive) {
// 앱이 foreground( 실행 중 ) 상태에서 push를 수신함
}
else {
// 앱이 background 상태에서 push를 수신함
}
}
========================================================================================
3. 구동 테스트
원하는 부분의 아래의 코드를 넣으면, 아래 처럼 푸시알림 허용 팝업창을 볼수 있습니다.
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
[application registerForRemoteNotifications];
-> 푸시 알림 설정 창을 요청할때
댓글
댓글 쓰기