iOS
Rijke meldingen
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
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
Stap 3: het bestand info.plist van de gemaakte extensie configureren
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
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.