Fit*_*ill 31 notifications swift ios14
您好,我正在尝试显示一些通知数据。在我的通知中,我有一个通知 ID,可以根据推送的信息做出不同的反应。
我只是看不到那些新的 UNNotificationPresentationOptions 是什么。
在我的
userNotificationCenter(_: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
Run Code Online (Sandbox Code Playgroud)
我有
if notification.request.content.userInfo[keyName] as? String == "someId" {
// Bla bla stuffs
if #available(iOS 14.0, *) {
completionHandler([.list, .banner, .sound])
} else {
completionHandler([.alert])
}
} else if ...
Run Code Online (Sandbox Code Playgroud)
但是当使用 [.banner] 或 [.list] 或 [.banner, .list] (没有 .alert)时,我在前台什么也没有。在理想的情况下,我希望在通知中心列出通知并在我的应用程序中显示相关信息(在调用完成处理程序之前)。
我使用这些选项正确吗?
wil*_*lc0 62
[.list]只会显示通知中心的通知(从顶部下拉时显示的菜单)[.banner]只会像普通推送通知一样从顶部弹出横幅[.list, .banner]将执行以下两项操作:显示横幅并确保其位于列表中。[.alert][.list, .banner]据我所知,其本质上与having相同。他们只是添加了这两个选项来提供更精细的控制。
我刚刚在本地测试了这个,它达到了我的预期,所以如果它对你不起作用,它可能不会达到这些标准。您是否添加了一些断点来验证这些行是否被命中?
通知以两种方式显示
首先,[.list] - 它将显示在通知中心列表中,而不是顶部菜单中。
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler([.list, .badge, .sound])
}
Run Code Online (Sandbox Code Playgroud)
第二个[.banner] - 它将显示在顶部菜单中,但不会像列表一样显示在列表中
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler([.banner, .badge, .sound])
}
Run Code Online (Sandbox Code Playgroud)
如果您想要通知中心中的事物列表和顶部菜单,请执行以下操作
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler([.banner, .list, .badge, .sound])
}
Run Code Online (Sandbox Code Playgroud)
该函数似乎具有与同时具有和功能.alert类似的用途。引入这两个附加选项似乎是为了对所需结果提供更精确的控制。(.alert 已弃用).list.banner
如果您正在寻找代码或教程,请查看我在本地通知上的视频:- https://www.youtube.com/watch?v=yMbujKTf0uQ&t=1480s
| 归档时间: |
|
| 查看次数: |
10739 次 |
| 最近记录: |