iOS
Rika meddelanden
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
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
Steg 3: Konfigurera info.plist-filen för det skapade tillägget
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
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.