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 Aktivieren der Hintergrundmodi

Aktivieren von Push-Benachrichtigungen

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 UNNotificationContentExtension erstellen

Schritt 3: Konfigurieren Sie die Datei info.plist der erstellten Erweiterung

Geben Sie hier die Bildbeschreibung ein

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 Anwendung self.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 Geben Sie hier die Bildbeschreibung ein

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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow