스케쥴 시작 전 사용자알림 추가하기
- 사용자 알림을 생성하는 로직을 작성한다.
- DeviceActivityMonitorExtension의 intervalDidStart, eventDidReachThreshold, intervalWillStartWarning, 에서 로직을 호출한다.
// MyApp/NotificationManager.swift
import Foundation
import UserNotifications
class NotificationManager {
static let shared = NotificationManager() // singleton
// MARK: 사용자 알림 권한 요청
func requestAuthorization(){...}
// MARK: 사용자 알림 생성 및 요청
func requestNotificationCreate() {
let content = UNMutableNotificationContent() // 노티피케이션컨텐츠 생성
content.title = "myTitle"
content.subtitle = "mySubTitle"
content.sound = .default
content.badge = 1
// 알림 트리거 - ex) 10초 뒤 알림
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 10.0, repeats: false)
// 사용자 알림 정보
let request = UNNotificationRequest(
identifier: UUID().uuidString,
content: content,
trigger: trigger)
// 사용자 알림 등록
UNUserNotificationCenter.current().add(request)
}
}
// DeviceActivityMonitor/DeviceActivityMonitorExtension.swift
class DeviceActivityMonitorExtension: DeviceActivityMonitor {
override func intervalWillStartWarning(for activity: DeviceActivityName) {
super.intervalWillStartWarning(for: activity)
// MARK: 알림 요청
NotificationManager.shared.requestNotificationCreate()
}
...
}
NOTICE
NotificationManager.swift파일의Target Membership설정을 통해 코드를 사용할 수 있다.
Link