반응형
이번 강좌에서는 ios 의 푸시 알림 2부의 클라이언트 개발을 알아보도록 하겠습니다.
ios 푸시 알림 1부 - 개발자 계정 세팅
ios 푸시 알림 2부 - 클라이언트 개발
ios 푸시 알림 3부 - APN 테스트
========================================================================================
1. Xcode를 열고 푸시 세팅을 해줍니다.
========================================================================================
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를 열고 푸시 세팅을 해줍니다.
========================================================================================
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];
-> 푸시 알림 설정 창을 요청할때
'Programming > iOS' 카테고리의 다른 글
[ios 강좌] ios 푸시 알림 3부 - APN 테스트 (0) | 2020.04.24 |
---|---|
[ios 강좌] ios 푸시 알림 1부 - 개발자 계정 세팅 (0) | 2020.04.24 |
[iOS 개발팁] UITextView에 placeholder 추가하기 (0) | 2020.04.24 |
[iOS 개발팁] 스토리보드 분리하기 (0) | 2020.04.24 |
[iOS 강좌] 오픈API 이용한 날씨 APP 만들기 - 5. 도시 정보 변경 (0) | 2020.04.22 |