iOS
Bogate powiadomienia
Szukaj…
Wprowadzenie
Bogate powiadomienia umożliwiają dostosowanie wyglądu powiadomień lokalnych i zdalnych, gdy pojawiają się na urządzeniu użytkownika. Takie powiadomienie obejmuje głównie UNNotificationServiceExtension i UNNotificationContentExtension, tj. Wyświetlanie zwykłego powiadomienia w sposób rozszerzony
Tworzenie prostego UNNotificationContentExtension
Krok 1
Dostosowanie środowiska do powiadomień. Upewnij się, że masz włączone tryby tła i powiadomienia push
Krok 2: Utworzenie UNNotificationContentExtension
Kliknij ikonę + u dołu, która tworzy szablon docelowy, i wybierz opcję Rozszerzenia treści powiadomień -> dalej -> utwórz nazwę rozszerzenia treści -> zakończ
Krok 3: Konfigurowanie pliku info.plist utworzonego rozszerzenia
Słownik w NSExtension oznacza sposób wyświetlania treści powiadomienia, które są wykonywane po długim naciśnięciu otrzymanego powiadomienia
- UNNotificationExtensionOverridesDefaultTitle: Domyślnie możemy nadać niestandardowy tytuł naszemu powiadomieniu, który wyświetla nazwę aplikacji
self.title = myTitle
- UNNotificationDefaultContentHidden: Ta wartość logiczna określa, czy domyślna treść powiadomienia ma być ukryta, czy nie
- UNNotificationCategory: Kategoria jest tworzona w
UNUserNotificationCenter
w Twojej aplikacji. Tutaj może to być ciąg lub tablica ciągów, więc każda kategoria może dawać różne typy danych, z których możemy tworzyć różne interfejsy użytkownika. Wysyłany ładunek musi zawierać nazwę kategorii, aby wyświetlić to konkretne rozszerzenie - UNNotificationExtensionInitialContentSizeRatio: Rozmiar początkowej zawartości, tj. Przy pierwszym wyświetleniu ContentExtension początkowej wielkości w odniesieniu do szerokości urządzenia. tutaj 1 oznacza, że wysokość będzie równa szerokości
Krok 4: Tworzenie UNNotificationAction
i UNNotificationCategory
w naszej aplikacji
W aplikacji AppDelegate.swift didFinishLaunchingWithOptions
dodaj funkcję
let userNotificationAction:UNNotificationAction = UNNotificationAction.init(identifier: "ID1", title: "வணக்கம்", options: .destructive)
let userNotificationAction2:UNNotificationAction = UNNotificationAction.init(identifier: "ID2", title: "Success", options: .destructive)
let notifCategory:UNNotificationCategory = UNNotificationCategory.init(identifier: "CATID1", actions: [userNotificationAction,userNotificationAction2], intentIdentifiers: ["ID1","ID2"] , options:.customDismissAction)
UNUserNotificationCenter.current().delegate = self
UNUserNotificationCenter.current().setNotificationCategories([notifCategory])
UIApplication.shared.registerForRemoteNotifications()
Stworzyliśmy dwie UNNotificationAction
z identyfikatorami ID1
i ID2
i dodaliśmy te akcje do UNNotificationCategory
o identyfikatorze CATID1
( CATID1
kategorii w pliku info.plist ContentExtension są takie same, to, co tutaj stworzyliśmy, powinno być użyte w ładunku i pliku plist). Ustawiamy kategorię na UNUserNotificationCenter
naszej aplikacji, aw następnym wierszu rejestrujemy się w celu powiadomienia, które wywołuje funkcję didRegisterForRemoteNotificationsWithDeviceToken
której otrzymujemy token urządzenia
Uwaga: nie zapomnij import UserNotifications
do AppDelegate.swift i dodać UNUserNotificationCenterDelegate
Krok 5: Przykładowy ładunek dla NotificationContent
'aps': {
'badge': 0,
'alert': {
'title': "Rich Notification",
'body': "Body of RICH NOTIFICATION",
},
'sound' : "default",
'category': "CATID1",
'mutable-content':"1",
},
'attachment': "2"
Krok 6: Konfigurowanie rozszerzenia treści
Odpowiednie działania dla kategorii są automatycznie wyświetlane podczas wykonywania działania powiadomienia. Pozwala nam zobaczyć kod, w jaki sposób jest wykonywany
import UIKit
import UserNotifications
import UserNotificationsUI
class NotificationViewController: UIViewController, UNNotificationContentExtension {
@IBOutlet var imageView: UIImageView?
override func viewDidLoad() {
super.viewDidLoad()
}
func didReceive(_ notification: UNNotification) {
self.title = "Koushik"
imageView?.backgroundColor = UIColor.clear
imageView?.image = #imageLiteral(resourceName: "welcome.jpeg")
}
func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void) {
self.title = "Koushik"
imageView?.image = UIImage.init(named: "Success.jpeg")
if(response.actionIdentifier == "ID1")
{
imageView?.image = UIImage.init(named: "Success.jpeg")
}
else
{
imageView?.image = UIImage.init(named: "welcome.jpeg")
}
}
}
Krok 7: Wynik
Po otrzymaniu i długim naciśnięciu / kliknięciu Wyświetl powiadomienie, powiadomienie wygląda następująco
Tytuł brzmi „Koushik”, ponieważ jako YES self.title = "Koushik"
i UNNotificationExtensionOverrideDefaultTitle
. W kroku 3 UNNotificationExtensionDefaultContentHidden
jako NIE, jeśli TAK, to powiadomienie będzie wyglądać jak obrazy 3 i 4.