Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 866 Vote(s) - 3.55 Average
  • 1
  • 2
  • 3
  • 4
  • 5
IOS 14 UNNotificationPresentationOptions.list, .banner vs alert

#1
Hello I am trying to display some notification datas.
In my notification I have a notification id to react deferently based on the pushed information.

I just cannot see what are those new UNNotificationPresentationOptions.

in my

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

I have

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 ...


But when using [.banner] or [.list] or [.banner, .list] (without .alert) I just got nothing in foreground. In an ideal world I'd love to have the notification listed in the Notification center and display relevant information in my app (before calling completion handler).

Am I using thoses options right ?
Reply

#2
The notification shows in two ways
1. It shows in the top menu (the menu that shows when you pull down from the top)
2. In the notification center list

First, **[.list]** - It will show in the notification centre list, not in the top menu.

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler([.list, .badge, .sound])
}

[![enter image description here][1]][1]


Second **[.banner]** - It will show in the top menu but not in the list like **list**

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler([.banner, .badge, .sound])
}

[![enter image description here][2]][2]


[1]:

[2]:


If you want both things list and top menu in the Notification Center then do this

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

It will give you both image output.

**[.alert]** does essentially the same as having [.list, .banner], from what I can tell. They just added these two options to give more granular control.

If you are looking for the code or tutorial then please check my video on Local Notification :-
Reply

#3
- `[.list]` will only show the notification in the notification center (the menu that shows when you pull down from the top)
- `[.banner]` will only pop down a banner from the top like a normal push notification
- `[.list, .banner]` will do both: show the banner and also make sure it's on the list.

`[.alert]` does essentially the same as having `[.list, .banner]`, from what I can tell. They just added these two options to give more granular control.

I just tested this locally and it did what I expected, so if it doesn't work for you it may not be hitting those lines. Did you add some breakpoints to verify that those lines were getting hit?
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through