iOS
Rich Benachrichtigungen
Suche…
Einführung
Mit den Rich Notifications können Sie das Erscheinungsbild von lokalen und Remote-Benachrichtigungen anpassen, wenn sie auf dem Gerät des Benutzers angezeigt werden. Zu dieser Benachrichtigung gehören hauptsächlich UNNotificationServiceExtension und UNNotificationContentExtension, dh die normale Benachrichtigung wird auf erweiterte Weise angezeigt
Erstellen einer einfachen UNNotificationContentExtension
Schritt 1
Die Umgebung für die Benachrichtigung geeignet machen. Stellen Sie sicher, dass Sie Hintergrundmodi und Push-Benachrichtigung aktiviert haben
Schritt 2: Erstellen einer UNNotificationContentExtension
Klicken Sie unten auf das + -Symbol, um eine Zielvorlage zu erstellen, und wählen Sie Benachrichtigungsinhaltserweiterung -> Weiter -> Erstellen Sie einen Namen für die Inhaltserweiterung -> Fertig stellen
Schritt 3: Konfigurieren Sie die Datei info.plist der erstellten Erweiterung
Das Wörterbuch in NSExtension gibt an, wie der Benachrichtigungsinhalt angezeigt wird. Diese werden ausgeführt, wenn die empfangene Benachrichtigung lange gedrückt wird
- UNNotificationExtensionOverridesDefaultTitle: Standardmäßig können wir einen benutzerdefinierten Titel für unsere Benachrichtigung
self.title = myTitle
wird der Name der Anwendungself.title = myTitle
- UNNotificationDefaultContentHidden: Dieser Boolean-Wert bestimmt, ob der Standardtext der Benachrichtigung ausgeblendet werden soll oder nicht
- UNNotificationCategory: Die Kategorie wird im
UNUserNotificationCenter
in Ihrer Anwendung erstellt. Hierbei kann es sich entweder um einen String oder ein Array von Strings handeln, sodass jede Kategorie unterschiedliche Datentypen angeben kann, aus denen verschiedene Benutzeroberflächen erstellt werden können. Die von uns gesendete Nutzlast muss den Kategorienamen enthalten, um diese bestimmte Erweiterung anzuzeigen - UNNotificationExtensionInitialContentSizeRatio: Die Größe des ursprünglichen Inhalts, dh bei der ersten Anzeige der ContentExtension wird die ursprüngliche Größe in Bezug auf die Breite des Geräts angezeigt. Hier bedeutet 1, dass die Höhe der Breite entspricht
Schritt 4: Erstellen von UNNotificationAction
und UNNotificationCategory
in unserer Anwendung
In AppDelegate.swift Ihrer App fügen didFinishLaunchingWithOptions
Funktion didFinishLaunchingWithOptions
hinzu
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()
Wir haben zwei UNNotificationAction
mit den Bezeichnern ID1
und ID2
und diese Aktionen zu einer UNNotificationCategory
mit dem Bezeichner CATID1
hinzugefügt. Wir setzen die Kategorie auf UNUserNotificationCenter
unserer Anwendung. In der nächsten Zeile registrieren wir uns für die Benachrichtigung, in der die Funktion didRegisterForRemoteNotificationsWithDeviceToken
wird, in der das didRegisterForRemoteNotificationsWithDeviceToken
Hinweis: Vergessen Sie nicht, import UserNotifications
in AppDelegate.swift zu import UserNotifications
und UNUserNotificationCenterDelegate
hinzuzufügen
Schritt 5: Beispielnutzdaten für den NotificationContent
'aps': {
'badge': 0,
'alert': {
'title': "Rich Notification",
'body': "Body of RICH NOTIFICATION",
},
'sound' : "default",
'category': "CATID1",
'mutable-content':"1",
},
'attachment': "2"
Schritt 6: Konfigurieren der ContentExtension
Die entsprechenden Aktionen für die Kategorie werden automatisch angezeigt, während die Benachrichtigungsaktion ausgeführt wird. Lässt uns den Code sehen, wie er ausgeführt wird
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")
}
}
}
Schritt 7: Ergebnis
Nach dem Empfang und langem Drücken von / Klicken auf Benachrichtigung anzeigen sieht die Benachrichtigung folgendermaßen aus
Der Titel lautet "Koushik", da wir self.title = "Koushik"
und UNNotificationExtensionOverrideDefaultTitle
als YES angegeben haben. In Schritt 3 haben wir UNNotificationExtensionDefaultContentHidden
als NEIN angegeben. Wenn JA, dann sieht die Benachrichtigung wie in Bild 3 und 4 aus.