Zoeken…


Invoering

Met de Rich Notifications kunt u het uiterlijk van lokale en externe meldingen aanpassen wanneer ze op het apparaat van de gebruiker verschijnen. Rijke melding omvat meestal UNNotificationServiceExtension en UNNotificationContentExtension, dwz de normale melding op een uitgebreide manier weergeven

Een eenvoudige UNNotificationContentExtension maken

Stap 1

De omgeving geschikt maken voor kennisgeving. Zorg ervoor dat u Achtergrondmodi en Push-melding hebt ingeschakeld Achtergrondmodi inschakelen

Pushmeldingen inschakelen

Stap 2: Een UNNotificationContentExtension maken

Klik op het + -pictogram onderaan om een doelsjabloon te maken en selecteer Melding inhoudsextensie -> volgende -> maak een naam voor de inhoudsextensie -> voltooien UNNotificationContentExtension maken

Stap 3: het bestand info.plist van de gemaakte extensie configureren

voer hier de afbeeldingsbeschrijving in

Het woordenboek in NSExtension geeft aan hoe de meldingsinhoud wordt weergegeven, deze worden uitgevoerd door lang op de ontvangen melding te drukken

  • UNNotificationExtensionOverridesDefaultTitle: we kunnen standaard een aangepaste titel voor onze melding geven; deze geeft de naam van de toepassing self.title = myTitle
  • UNNotificationDefaultContentHidden: deze boolean bepaalt of de standaardtekst van de melding moet worden verborgen of niet
  • UNNotificationCategory: Categorie is gemaakt in UNUserNotificationCenter in uw toepassing. Hier kan het een string of een array van strings zijn, dus elke categorie kan verschillende soorten gegevens geven waaruit we verschillende UI's kunnen maken. De payload die we verzenden, moet de categorienaam bevatten om deze specifieke extensie weer te geven
  • UNNotificationExtensionInitialContentSizeRatio: de grootte van de initiële inhoud, dwz wanneer de ContentExtension voor de eerste keer de initiële grootte met betrekking tot de breedte van het apparaat wordt weergegeven. hier geeft 1 aan dat de hoogte gelijk zal zijn aan de breedte

Stap 4: UNNotificationAction en UNNotificationCategory in onze applicatie

In de AppDelegate.swift van uw app heeft de functie didFinishLaunchingWithOptions toegevoegd

    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()

We hebben twee UNNotificationAction met ID's ID1 en ID2 en die acties toegevoegd aan een UNNotificationCategory met ID CATID1 (de categorie-ID in het info.plist-bestand van ContentExtension is hetzelfde, wat we hier hebben gemaakt, moet in de payload en het plist-bestand worden gebruikt). We hebben de categorie ingesteld op het UNUserNotificationCenter van onze applicatie en in de volgende regel registreren we ons voor de melding die de functie didRegisterForRemoteNotificationsWithDeviceToken , waar we het apparaattoken krijgen

Opmerking: vergeet niet om import UserNotifications in uw AppDelegate.swift te import UserNotifications toe te UNUserNotificationCenterDelegate

Stap 5: Voorbeeld van payload voor de NotificationContent

 'aps': {
    'badge': 0,
    'alert': {
        'title': "Rich Notification",
        'body': "Body of RICH NOTIFICATION",
        },
    'sound' : "default",
    'category': "CATID1",
    'mutable-content':"1",
    },
'attachment': "2"

Stap 6: ContentExtension configureren

De bijbehorende acties voor de categorie worden automatisch weergegeven terwijl de meldingsactie wordt uitgevoerd. Laat ons de code zien hoe deze wordt uitgevoerd

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")
    }
    
    }
}

Stap 7: resultaat

Na ontvangst en een lange druk / Klik op View-melding ziet de melding er als volgt uit voer hier de afbeeldingsbeschrijving in

De titel is "Koushik" omdat we self.title = "Koushik" en UNNotificationExtensionOverrideDefaultTitle als JA hebben gegeven. In stap 3 hebben we UNNotificationExtensionDefaultContentHidden als NEE gegeven als het JA is, dan ziet de melding eruit als afbeeldingen 3 en 4.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow