Sök…


Introduktion

Med de rika aviseringarna kan du anpassa utseendet på lokala och fjärrmeddelanden när de visas på användarens enhet. Meddelanden från Rich innehåller mestadels UNNotificationServiceExtension och UNNotificationContentExtension, dvs att visa normal meddelande på ett utökat sätt

Skapa en enkel UNNotificationContentExtension

Steg 1

Gör miljön lämplig för anmälan. Se till att du har aktiverat bakgrundslägen och Push Notification Aktivera bakgrundslägen

Aktivera Push-aviseringar

Steg 2: Skapa en UNNotificationContentExtension

Klicka på + -ikonen i botten som skapar en målmall och välj Meddelande innehållsförlängning -> nästa -> skapa ett namn för innehållstillägget -> finish Skapa UNNotificationContentExtension

Steg 3: Konfigurera info.plist-filen för det skapade tillägget

ange bildbeskrivning här

Ordboken i NSExtension anger hur meddelandets innehåll visas, dessa utförs när du trycker på det mottagna meddelandet

  • UNNotificationExtensionOverridesDefaultTitle: Vi kan ge anpassad titel för vårt meddelande som standard, det visar namnet på applikationen self.title = myTitle
  • UNNotificationDefaultContentHidden: Denna booleska avgör om meddelandets standardinstans ska döljas eller inte
  • UNNotificationCategory: Category skapas i UNUserNotificationCenter i din applikation. Här kan det vara antingen en sträng eller en rad strängar, så varje kategori kan ge olika typer av data från vilka vi kan skapa olika UI: er. Den nyttolast som vi skickar måste innehålla kategorinamnet för att visa den här tillägget
  • UNNotificationExtensionInitialContentSizeRatio: Storleken på det ursprungliga innehållet, dvs när innehållsförlängningen för första gången visas den första storleken med avseende på enhetens bredd. här 1 anger höjden kommer att vara lika med bredden

Steg 4: Skapa UNNotificationAction och UNNotificationCategory i vår applikation

I appens AppDelegate.swift didFinishLaunchingWithOptions funktionen

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

Vi skapade två UNNotificationAction med identifierare ID1 och ID2 och lade till dessa åtgärder till en UNNotificationCategory med identifierare CATID1 (kategoriID i ContentExtensions info.plist-fil är samma, det vi skapade här bör användas i nyttolast och plist-filen). Vi ställer in kategorin till vår applikations UNUserNotificationCenter och i nästa rad registrerar vi oss för meddelandet som kallar didRegisterForRemoteNotificationsWithDeviceToken funktionen där vi får enhetens token

Obs: glöm inte att import UserNotifications i din AppDelegate.swift och lägg till UNUserNotificationCenterDelegate

Steg 5: Prov nyttolast för NotificationContent

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

Steg 6: Konfigurera ContentExtension

Motsvarande åtgärder för kategorin visas automatiskt medan meddelandeaktionen utförs. Låter oss se koden hur den utförs

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

Steg 7: Resultat

Efter att ha mottagit och länge tryckt / klickat på Visa meddelande ser meddelandet ut så här ange bildbeskrivning här

Titeln är "Koushik" eftersom vi gav self.title = "Koushik" och UNNotificationExtensionOverrideDefaultTitle som JA. I steg 3 gav vi UNNotificationExtensionDefaultContentHidden som NEJ om dess JA så kommer meddelandet att se ut som bilder 3 och 4.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow