#swift #macos #notifications
Вопрос:
Мое приложение публикует локальные уведомления macOS. Важно, чтобы это был не banner
стиль alert
, а стиль.
До сих пор я добивался этого, устанавливая NSUserNotificationAlertStyle=alert
в Info.plist
. Когда NSUserNotification
пользователю отправляется первое сообщение, его просят одобрить оповещения приложения. После утверждения приложение будет Alert style
установлено Alerts
в настройках macOS.
Однако с тех NSUserNotification
пор API устарел macOS 11
.
В приведенном ниже коде я попытался использовать более новый UNNotification
API, значение Alert style
всегда равно banner
независимо NSUserNotificationAlertStyle
от значения свойства.
Есть ли какой-нибудь способ обойти это? Поскольку пользователи в любом случае могут изменить стиль оповещения, я не уверен, почему приложения не могут сами выбрать стиль по умолчанию.
import UserNotifications
import SwiftUI
@main
struct UNNotificationIssuesApp: App {
init() {
let notificationCenter = UNUserNotificationCenter.current()
notificationCenter.requestAuthorization(options: [.alert, .sound]) { (granted, error) in
if granted {
notificationCenter.getNotificationSettings { settings in
print("Granted app notification permissions: (settings)")
}
} else {
print("All the app's notification permissions were revoked")
}
if let err = error {
print("An error occurred while granting app notification permissions:", err.localizedDescription)
}
}
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}