Buscar..


Introducción

Las Notificaciones enriquecidas le permiten personalizar la apariencia de las notificaciones locales y remotas cuando aparecen en el dispositivo del usuario. Las notificaciones ricas en su mayoría incluyen UNNotificationServiceExtension y UNNotificationContentExtension, es decir, mostrar la notificación normal de manera extendida

Creando una extensión simple UNNotificationContentExtension

Paso 1

Haciendo el ambiente adecuado para la notificación. Asegúrate de habilitar los modos de fondo y la notificación push Habilitar modos de fondo

Habilitando Notificaciones Push

Paso 2: Creando una extensión UNNotificationContentExtension

Haga clic en el icono + en la parte inferior que crea una plantilla de destino y seleccione Extensión del contenido de la notificación -> a continuación -> cree un nombre para la extensión del contenido -> finalice Crear UNNotificationContentExtension

Paso 3: Configuración del archivo info.plist de la extensión creada

introduzca la descripción de la imagen aquí

El diccionario en NSExtension significa cómo se muestra el contenido de la notificación, estos se realizan al presionar prolongadamente la notificación recibida

  • UNNotificationExtensionOverridesDefaultTitle: podemos dar un título personalizado para nuestra notificación de forma predeterminada, muestra el nombre de la aplicación self.title = myTitle
  • UNNotificationDefaultContentHidden: este booleano determina si el cuerpo predeterminado de la notificación debe estar oculto o no
  • UNNotificationCategory: la categoría se crea en UNUserNotificationCenter en su aplicación. Aquí puede ser una cadena o una matriz de cadenas, por lo que cada categoría puede proporcionar diferentes tipos de datos a partir de los cuales podemos crear diferentes UI. La carga útil que enviamos debe contener el nombre de la categoría para mostrar esta extensión en particular
  • UNNotificationExtensionInitialContentSizeRatio: el tamaño del contenido inicial, es decir, cuando se muestra la ContentExtension por primera vez el tamaño inicial con respecto al ancho del dispositivo. aquí 1 denota la altura será igual al ancho

Paso 4: Crear UNNotificationAction y UNNotificationCategory en nuestra aplicación

En la aplicación AppDelegate.swift didFinishLaunchingWithOptions función agregar

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

Creamos dos UNNotificationAction con identificadores ID1 e ID2 y agregamos esas acciones a UNNotificationCategory con el identificador CATID1 (el ID de categoría en el archivo info.plist de ContentExtension es el mismo, lo que creamos aquí se debe usar en la carga útil y en el archivo plist). Establecemos la categoría en el UNUserNotificationCenter nuestra aplicación y en la siguiente línea nos estamos registrando para la notificación que llama a la función didRegisterForRemoteNotificationsWithDeviceToken donde obtenemos el token del dispositivo

Nota: no olvide import UserNotifications en su AppDelegate.swift y agregue UNUserNotificationCenterDelegate

Paso 5: Carga útil de muestra para NotificationContent

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

Paso 6: Configurando el ContentExtension

Las acciones correspondientes para la categoría se muestran automáticamente mientras se realiza la acción de notificación. Veamos el código de cómo se realiza.

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

Paso 7: Resultado

Después de recibir y presionar prolongadamente / hacer clic en Ver notificación, la notificación se verá así introduzca la descripción de la imagen aquí

El título es "Koushik" ya que dimos self.title = "Koushik" y UNNotificationExtensionOverrideDefaultTitle como YES. En el paso 3 le dimos a UNNotificationExtensionDefaultContentHidden como NO si es SÍ, entonces la notificación se verá como las imágenes 3 y 4.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow