Можно ли установить стиль оповещения по умолчанию для неназначения macOS?

#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()
        }
    }
}
 

Стиль предупреждения баннера по умолчанию