在 iOS 15 中播放与通知相关的提示音而不显示横幅或列表的正确方法是什么?
在前台处理通知时,无论是本地通知还是推送通知,如果出现以下情况,则不会播放通知声音:UNNotificationPresentationOptions
只是sound
。如果有其他选项,例如banner
or list
与一起添加sound
然后会响起通知音。
当应用程序在后台时,通知呈现的所有选项都可以正常工作。
I know 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
}
Update:苹果确认这是一个错误,现已在 iOS 16 beta 2 中修复。但 iOS 15 没有解决方案。
我找到了解决方案。
您需要像这样设置完成处理程序:
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
也会在通知中心添加通知,我发现这非常有用,以防用户在使用该应用程序时错过了一些通知。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)