본문으로 건너뛰기

스케쥴 시작 전 사용자알림 추가하기

  1. 사용자 알림을 생성하는 로직을 작성한다.
  2. 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