3

在不显示横幅或列表的情况下,在 iOS 15 中播放与通知相关的音调的正确方法是什么?

在前台处理本地和推送通知时,如果UNNotificationPresentationOptionssound. 如果添加了其他选项(例如bannerlist),sound则会播放通知音。

当应用程序在后台时,通知呈现的所有选项都可以正常工作。

我知道alert选项从 iOS 15 开始贬值。sound作为唯一的演示选项使用,不再有效?

下面是片段

func userNotificationCenter(_ center: UNUserNotificationCenter, 
willPresent notification: UNNotification, withCompletionHandler 
completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
     
     completionHandler(.sound) //not working
     //completionHandler([.banner, .sound]) //works
     //completionHandler([.list, .sound]) //works
     
 }
4

1 回答 1

0

我找到了解决方案。您需要像这样设置完成处理程序:

func userNotificationCenter(_ center: UNUserNotificationCenter,
                                willPresent notification: UNNotification,
                                withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {

    switch UIApplication.shared.applicationState {

    case .active:
        if #available(iOS 14.0, *) {
            completionHandler([.sound, .list])
        } else {
            // Fallback on earlier versions
            completionHandler([.sound])
        }
    default:
        if #available(iOS 14.0, *) {
            completionHandler([.banner, .sound])
        } else {
            // Fallback on earlier versions
            completionHandler([.alert, .sound])
        }
    }
}

现在,应用内通知带有声音和我的自定义横幅。

.list也会在通知中心添加通知,我觉得这非常有用,以防用户正在使用该应用程序并错过了一些通知。

于 2021-12-21T13:48:28.887 回答