iOS
Notifiche Rich
Ricerca…
introduzione
Le notifiche avanzate ti consentono di personalizzare l'aspetto delle notifiche locali e remote quando vengono visualizzate sul dispositivo dell'utente. La notifica di notifica include principalmente UNNotificationServiceExtension e UNNotificationContentExtension, ovvero la visualizzazione della notifica normale in modo esteso
Creazione di un semplice UNNotificationContentExtension
Passo 1
Rendere l'ambiente adatto alla notifica. Assicurati di aver abilitato le Modalità di background e Push Notification
Passaggio 2: creazione di UNNotificationContentExtension
Fai clic sull'icona + in basso che crea un modello di destinazione e seleziona Estensione contenuto di notifica -> successivo -> crea un nome per l'estensione di contenuto -> termina
Passaggio 3: configurazione del file info.plist dell'estensione creata
Il dizionario in NSExtension indica come viene visualizzato il contenuto della notifica, questi vengono eseguiti premendo a lungo la notifica ricevuta
- UNNotificationExtensionOverridesDefaultTitle: possiamo dare un titolo personalizzato per la nostra notifica per impostazione predefinita, visualizza il nome dell'applicazione
self.title = myTitle
- UNNotificationDefaultContentHidden: questa booleana determina se il corpo predefinito della notifica deve essere nascosto o meno
- UNNotificationCategory: la categoria viene creata in
UNUserNotificationCenter
nell'applicazione. Qui può essere una stringa o una serie di stringhe, quindi ogni categoria può dare diversi tipi di dati dai quali possiamo creare diverse UI. Il payload che inviamo deve contenere il nome della categoria per poter visualizzare questa particolare estensione - UNNotificationExtensionInitialContentSizeRatio: la dimensione del contenuto iniziale, ovvero quando si visualizza ContentExtension per la prima volta la dimensione iniziale rispetto alla larghezza del dispositivo. qui 1 indica che l'altezza sarà uguale alla larghezza
Passaggio 4: Creazione di UNNotificationAction
e UNNotificationCategory
nella nostra applicazione
Nell'app AppDelegate.swift della tua app è didFinishLaunchingWithOptions
aggiunta la funzioneFinishLaunchingWithOptions
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()
Abbiamo creato due UNNotificationAction
con identificatori ID1
e ID2
e abbiamo aggiunto tali azioni a UNNotificationCategory
con identificativo CATID1
(lo CATID1
categoria nel file info.plist di ContentExtension è lo stesso, quello che abbiamo creato qui dovrebbe essere utilizzato nel payload e nel file plist). UNUserNotificationCenter
la categoria su UNUserNotificationCenter
della nostra applicazione e nella riga successiva ci stiamo registrando per la notifica che chiama la funzione didRegisterForRemoteNotificationsWithDeviceToken
dove otteniamo il token del dispositivo
Nota: non dimenticare di import UserNotifications
in AppDelegate.swift e aggiungere UNUserNotificationCenterDelegate
Passaggio 5: carico utile di esempio per NotificationContent
'aps': {
'badge': 0,
'alert': {
'title': "Rich Notification",
'body': "Body of RICH NOTIFICATION",
},
'sound' : "default",
'category': "CATID1",
'mutable-content':"1",
},
'attachment': "2"
Passaggio 6: configurazione di ContentExtension
Le azioni corrispondenti per la categoria vengono visualizzate automaticamente mentre viene eseguita l'azione di notifica. Consente di vedere il codice come viene eseguito
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")
}
}
}
Passaggio 7: risultato
Dopo aver ricevuto e premuto a lungo / facendo clic su Visualizza notifica, la notifica appare come questa
Il titolo è "Koushik" poiché abbiamo dato self.title = "Koushik"
e UNNotificationExtensionOverrideDefaultTitle
come YES. Nel passaggio 3 abbiamo dato UNNotificationExtensionDefaultContentHidden
come NO se è SÌ, quindi la notifica avrà l'aspetto delle immagini 3 e 4.