728x90
반응형
오늘은 UNUserNotificationCenter를 이용해보는 예제를 작성해 보겠다.
그전에 UNUserNotificationCenter란 무엇인가?
Apple 개발자 문서에 따르면..
UNUserNotificationCenter는 앱이나 앱의 익스텐션들과 관련된 여러 알림들을 중앙에서 관리하는 객체라 한다.
이를 사용하기 위해서는 사용자에게 알람을 허락 받는 퍼미션을 물어봐야한다. 알림과 뱃지, 소리 등을 설정할 수 있고 스케줄링으로 푸시를 줄수도 있다 한다. 더 자세한 내용은 개발자 문서를 참고
https://developer.apple.com/documentation/usernotifications/unusernotificationcenter
아래 스토리보드 형식의 애플리케이션에서 적용하는 코드를 보자.
Swift 예제 (Storyboard)
import UIKit
import UserNotifications
class ViewController: UIViewController {
//버튼을 클릭하면 .. 알람이 등록되고 5초후에
@IBAction func pushButton(_ sender: Any) {
print ("push button")
let content = UNMutableNotificationContent()
content.title = "Test Cron"
content.subtitle = "알림입니다."
content.body = "알람이야....!!"
content.badge = 1
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats:false)
let request = UNNotificationRequest(identifier: "timerdone", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
//퍼미션을 요구한다.
UNUserNotificationCenter.current().requestAuthorization(
options: [.alert,.sound,.badge], completionHandler: {didAllow,Error in
print(didAllow) //
})
}
}
- UNUserNotificationCenter.current().requestAuthorization을 이용해 퍼미션을 요구한다.
- pushButton 메소드에서 버튼을 눌렀을 때 UNMutableNotificationContent를 이용하여 알람에 대한 내용을 설정한다.
- UNTimeIntervalNotificationTrigger를 이용하여 알람에 대한 트리거를 설정한다. 여기서는 타임트리거를 생성한다.
- UNNotificationRequest를 이용하여 트리거와, 알람 내용에 대한 요청을 생성한다. 이때 identifier를 설정한다.
- 마지막으로 UNUserNotificationCenter.current().add를 이용하여 UserNofication에 등록한다.
이렇게 코드를 작성하고 실행해 보면 지정한 시간 후 푸시 알람을 볼 수 있다.(백그라운드 상태에서만 알람 푸시가 작동한다.)
728x90
반응형
'개발 > iOS' 카테고리의 다른 글
Swift 상수, 변수 (0) | 2019.11.27 |
---|---|
SwiftUI] 스위프트UI에서 UNUserNotificationCenter 사용하기 (0) | 2019.11.20 |
Swift ] Swift로 콘솔 출력 해보기 print (2) | 2019.11.17 |
Swift ] Swift Playground로 연습하기 (0) | 2019.11.17 |
SwiftUI ] SwiftUI에서 Modal View 띄우기(모달뷰) (0) | 2019.11.13 |
댓글