Вот исходный код:
Код: Выделить всё
import SwiftUI
import UserNotifications
struct ContentView: View {
var body: some View {
VStack(spacing: 30) {
Button("Schedule User Notification") {
Task {
let center = UNUserNotificationCenter.current()
do {
let answer = try await center.requestAuthorization(options: [.alert, .badge])
switch answer {
case true:
scheduleNotification()
print("Called: scheduleNotification")
case false:
print("Permission Denied")
try await center.requestAuthorization(options: [.alert, .badge])
}
} catch {
print(error)
}
}
}.buttonStyle(.borderedProminent)
}
.padding()
}
func scheduleNotification() {
let content = UNMutableNotificationContent()
content.title = "Title [\(Date.now.formatted(date: .abbreviated, time: .shortened))]"
content.subtitle = "Notification-Subtitle"
content.body = "Notification-Body"
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 10, repeats: false)
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request)
{ error in
if let error = error {
print(error.localizedDescription)
} else {
print("Notification scheduled")
}
}
}
}
Но мне непонятно, в каком состоянии должно быть устройство, чтобы уведомление появляется.
Когда приложение находится на переднем плане, уведомление не появляется.
У меня оно появляется, когда я нажимаю кнопку уведомления по расписанию, а затем блокирую экране, подождите 10 секунд, затем нажмите кнопку «Домой» эмулятора.
Каковы необходимые условия для появления уведомлений пользователя?Становится запланированным уведомлением, которое удаляется, когда timerInterval истекает и приложение оказывается на переднем плане? После этого оно исчезает или каким-то образом сохраняется, чтобы появиться позже?
Подробнее здесь: https://stackoverflow.com/questions/791 ... -to-appear
Мобильная версия