Уведомления пользователей iOS: необходимые условия для появления запланированного уведомления?IOS

Программируем под IOS
Ответить
Anonymous
 Уведомления пользователей iOS: необходимые условия для появления запланированного уведомления?

Сообщение Anonymous »

Чтобы ознакомиться с уведомлением пользователей iOS, я создал пробное приложение.
Вот исходный код:

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»