iOS에서 로컬 노티피케이션 보내기
UNMutableNotificationContent을 사용하여 로컬 노티피케이션을 보낼 수 있습니다.
노티피케이션의 제목과 메시지, 재생할 소리 또는 앱 뱃지에 할당할 값도 지정할 수 있습니다.
식별자를 사용하여 관련된 알림들을 시각적으로 그룹화를 할 수도 있고 커스텀 런치 이미지를 지정할 수도 있습니다.
바로 노티피케이션을 노출할수있고 지정된 시간에 노출할 수도 있습니다.
노티피케이션을 사용하려면 사용자의 허용이 있어야 합니다.
https://developer.apple.com/documentation/usernotifications/asking_permission_to_use_notifications
ios10 이상
objective-c 예제입니다.
if (@available(iOS 10, *)) {
UNMutableNotificationContent *content = [UNMutableNotificationContent new];
content.body = message;
content.sound = [UNNotificationSound defaultSound];
content.badge = 0;
content.userInfo = userInfo;
NSString *identifier = @"Notification_Identifier";
UNNotificationRequest *notificationRequest = [UNNotificationRequest requestWithIdentifier:identifier content:content trigger:nil];
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center addNotificationRequest:notificationRequest withCompletionHandler:^(NSError * _Nullable error) {
if (error != nil) {
Log(@"%@", error.description);
}
}];
}
swift 예제입니다.
타이틀과 바디 메시지는 로컬라이징이 되어있으며 5초 딜레이를 준 뒤에 노출합니다.
trigger는 노티피케이션이 언제 노출될지 정의합니다.
let content = UNMutableNotificationContent()
content.title = NSString.localizedUserNotificationStringForKey("Hello!", arguments: nil)
content.body = NSString.localizedUserNotificationStringForKey("Hello_message_body", arguments: nil)
content.sound = UNNotificationSound.default()
// Deliver the notification in five seconds.
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
let request = UNNotificationRequest(identifier: "FiveSecond", content: content, trigger: trigger) // Schedule the notification.
let center = UNUserNotificationCenter.current()
center.add(request) { (error : Error?) in
if let theError = error {
// Handle any errors
}
}
io10 미만에서 로컬 노티피케이션 보내는 법입니다.
ios10 이상에서는 deprecated 되어 사용할 수 없지만 하위 버전까지 지원하는 앱이라면 알아두어야 하겠습니다.
ios10 미만에서는 UILocalNotification를 사용합니다. 맥락은 UNMutableNotificationContent와 다를 바 없습니다.
objective-c 예제입니다.
UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:1];
notification.alertBody = message;
notification.timeZone = [NSTimeZone timeZoneWithName:@"KST"];
notification.repeatInterval = 0;
notification.soundName = UILocalNotificationDefaultSoundName;
notification.applicationIconBadgeNumber = 0;
notification.userInfo = userInfo;
[[UIApplication sharedApplication] presentLocalNotificationNow:notification];
https://developer.apple.com/documentation/usernotifications/unmutablenotificationcontent
'IT > iOs' 카테고리의 다른 글
UITableView 스와이프 메뉴, 편집 모드 다루기 (0) | 2019.12.12 |
---|---|
WKUserContentController 뽀개기 (0) | 2019.11.25 |
Realm 에러 모음 (0) | 2019.11.20 |
프레임워크 지원하는 아키텍처 확인하는법 (0) | 2019.11.18 |
App Store Connect Operation Warning (0) | 2019.11.16 |