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 Abilitazione delle modalità di background

Abilitazione delle notifiche push

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 Creazione di UNNotificationContentExtension

Passaggio 3: configurazione del file info.plist dell'estensione creata

inserisci la descrizione dell'immagine qui

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 inserisci la descrizione dell'immagine qui

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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow