Hi
in the meantime I solved it like this. Maybe this is helpful for someone.
func getUserNotificationPermission(completion: @Sendable @escaping (String) -> Void) {
DispatchQueue.global(qos: .userInteractive).async {
UNUserNotificationCenter.current().getNotificationSettings { settings in
if settings.authorizationStatus == .authorized {
completion("authorized")
}
if settings.authorizationStatus == .provisional {
completion("authorized")
}
if settings.authorizationStatus == .ephemeral {
completion("authorized")
}
if settings.authorizationStatus == .denied {
completion("denied")
}
if settings.authorizationStatus == .notDetermined {
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { success, error in
if success {
completion("authorized")
} else {
completion("denied")
}
}
}
}
}
}
I can call this function via a Button from a SwiftUI View:
struct ContentView: View {
var body: some View {
VStack {
Button("getUserNotificationPermission") {
getUserNotificationPermission { permission in
if permission == "authorized" {
print("permission: \(permission)")
}
}
}
}
}
}