Introducción
Iniciando con APEX 21, el equipo de desarrollo ha venido introduciendo poco a poco funcionalidades de PWA a las aplicaciones desarrolladas con APEX.
Si bien hasta el momento se puede considerar que estas funcionalidades son básicas, en la versión 23.1 que pronto estará disponible, se ha dado un paso importante más en cuanto a este tipo de funcionalidad para las aplicaciones APEX.
A partir de la próxima versión, tendremos la oportunidad de enviar notificaciones a los usuarios de nuestras aplicaciones que tengan definida la funcionalidad PWA.
Esta funcionalidad especifica, no se limita al uso de las mismas en dispositivos móviles, pues es posible habilitarlas también en nuestras portátiles.
Compatibilidad
Como ya mencioné arriba, esta funcionalidad se puede utilizar tanto en dispositivos móviles como de escritorio, por lo que es importante conocer la compatibilidad con diferentes navegadores, es por eso que les quiero dejar la siguiente tabla, que muestra que navegadores para que sistema operativo permiten el uso de la misma. Esta tabla está actualizada al 23 de abril de 2023.
Android | — | |||
iOS | ||||
macOS | ||||
Windows | — |
Para iOS 16.4 y posteriores, únicamente en PWAs instalados.
Aspectos técnicos
Para implementar las notificaciones en nuestras aplicaciones APEX, existen varios aspectos que toman parte del proceso y que deben ser ejecutados:
Habilitar en nueva aplicación
Si queremos habilitar en envío y recepción de notificaciones cuando estamos creando una nueva aplicación, debemos ejecutar los siguientes pasos en el asistente de creación de aplicaciones:
- En el Creador de Aplicaciones, seleccionados Crear
- Completamos los campos necesarios
- En la sección Funciones, seleccionamos la casilla Notificaciones Push
Así de sencilla y ahora el usuario podrá suscribirse para recibir notificaciones y APEX podrá enviar notificaciones a los suscriptores.
Habilitar en aplicación existente
Si ya tenemos una aplicación y queremos habilitar las notificaciones push en ella, el proceso requiere unos pasos más, pero igual de sencillos, estos pasos son:
- En el Creador de Aplicaciones ingresar a la aplicación en la que desea habilitar las notificaciones
- Una vez en la aplicación, hacemos clic en el botón de Componentes Compartidos
- En la sección Interfaz de Usuario, seleccionamos la opción Aplicación Web Progresiva
- Encienda Activar Aplicaciones Web Progresivas
- Encienda Activar notificaciones push
- Configure Credenciales
- Si ya tiene definido uno o más pares de credenciales para autenticarse, seleccione uno de ellos
- Si no tiene aún un par de credenciales definido, haga clic en el botón Generar Credenciales, luego confirme en la ventana que se le muestra, que desea generar las credenciales.
- Configure la Página de configuración
- Proporcione el Correo Electrónico de Contacto, esta es la cuenta de correos a la que el proveedor de servicios de notificaciones push (Google, Mozilla, Apache) lo podrá contactar en caso de ser necesario.
- Haga clic en Aplicar Cambios
Para configurar la Página de configuración, en el punto 7, necesita haber defino previamente la página para hacerlo. Para crear esta página:
- En el Creador de Aplicaciones, estando en la aplicación en la que va a habilitar las notificaciones push, haga clic en Crear página
- Haga clic en Función
- Seleccione Notificación Push. Esta funcionalidad requiere la creación de 2 páginas: una página de configuración de usuario y una de notificaciones push
- Proporcione el número de página para la Página de configuración de notificaciones push
- Ingrese un número de página para la Página de configuración de usuario
- Haga clic en el botón Crear
Con esto podrá realizar el paso 7 necesario para habilitar las notificaciones push, del procedimiento que se describió arriba.
Hay algunos puntos importantes que se deben considerar para poder habilitar las notificaciones push en una aplicación existente:
- La aplicación debe estar creada con el Tema Universal
- Es necesario que se encuentre encendida la opción URL fáciles de recordar, en Componentes Compartidos, Definición de aplicación, Propiedades
Proceso de envío
Se pueden utilizar dos tipos de procedimiento diferentes que APEX ofrece para enviar notificaciones push, cada uno de ellos con sus propias características y ventajas:
Usando un procedimiento de página
Existe un nuevo proceso incorporado en APEX, el cual nos permite enviar de manera declarativa un mensaje de notificación a un solo usuario, aunque si el usuario tiene más de un dispositivo registrado para recepción de mensajes, el mismo le llegará a todos los dispositivos.
El nuevo proceso aparece como “Enviar notificación push”, tal y como se puede observar en la siguiente imagen.
Una vez que seleccionamos este procedimiento, debemos proceder a proporcionar los datos correspondientes como propiedades del mismo. Esto datos son:
- Para. Nombre de usuario al que se va a enviar la notificación push.
- Título. Título de la notificación push.
- Cuerpo: Cuerpo de la notificación psuh que se enviará.
- Destino de enlace. Enlace a una página de aplicación APEX o a un URL específico al que se quiere dirigir al receptor de la notificación push.
El Destino de enlace es opcional, no necesariamente se debe proporcionar un enlace en la notificación push. La siguiente imagen muestra las propiedades mencionadas arriba.
Usando un API
Si queremos tener más libertad y poder por ejemplo enviar una misma notificación a muchos usuarios a la vez, podemos entonces utilizar el API que proporciona APEX para tal fin. Esta API es apex_pwa.
Entre otras cosas, esta API nos permite utilizar parámetros adicionales, como el icono o el enlace a otras aplicaciones.
A continuación les proporciono 2 ejemplos. En el primero hacemos exactamente lo mismo que se definió en el nuevo procedimiento declarativo que proporciona APEX.
1 2 3 4 5 6 7 |
begin apex_pwa.send_push_notification ( p_application_id => 100, p_user_name => 'SMITH', p_title => 'Notification Title', p_body => 'Notification Body' ); end; |
El segundo ejemplo, envía un mismo mensaje a todos los usuario suscritos al envío de notificaciones push para una aplicacion determinada.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
begin for l_subscription in ( select distinct user_name from apex_appl_push_subscriptions where application_id = :APP_ID ) loop apex_pwa.send_push_notification ( p_application_id => :APP_ID, p_user_name => l_subscription.user_name, p_title => 'APEX 23.1 is here!', p_body => 'Try out the new features.' ); end loop; end; |
Cuando enviamos una notificación push, APEX la agrega a una cola que recibe todas las notificaciones que posteriormente un proceso en background envía de manera definitiva. Este proceso por defecto se ejecuta cada 2 minutos y envía todas las notificaciones que contenga la cola. Sin embargo, podemos hacer que las notificaciones se envíen de manera inmediata, para lo que usamos el procedimiento push_queue de la API apex_pwa, tal como se muestra a continuación:
1 2 3 |
begin apex_pwa.psuh_queue; end; |
Todo lo anterior nos lleva al último aspecto técnico involucrado en el envío de notificaciones push. Existen 2 vistas de mucha utilidad a las que podemos recurrir para obtener información referente a las notificaciones push:
- apex_appl_push_subscriptions
- apex_push_notifications_queue
La vista apex_appl_push_subscriptions, contiene la información de los usuarios suscritos al envío de notificaciones push.
La vista apex_push_notifications_queue, por su parte, presenta la información de las notificaciones push pendientes de enviar y de aquellas que por algún error no se pudieron enviar. Si una notificación se envió de manera satisfactoria, desaparece de esta vista.
Suscripción del usuario
Todo lo anterior nos ayuda a definir el proceso de envío de notificaciones push. Pero todo esto de nada servirá si los usuarios no se suscriben para recibir dichas notificaciones.
Este es el paso final en toda esta historia y hay algunas consideraciones importantes que debemos tener.
La primera de ellas, es que los usuarios se deben suscribir para recibir notificaciones de nuestras aplicaciones para que estas le lleguen a su dispositivo o dispositivos, para lo cual deben ir a la página creada para tal menester. De igual manera que se pueden suscribir, esta página le va a permitir al usuario suspender su suscripción en cualquier momento.
En segundo lugar, la suscripción a notificaciones en un dispositivo no implica que el usuario recibirá dichas notificaciones en otros dispositivos en que pueda usar la aplicación, por el contrario, si el usuario desea recibir las notificaciones en todos los dispositivos que posee, debe ejecutar el procedimiento de suscripción en cada uno de ellos, pues la suscripción relaciona la aplicación con el usuario y un dispositivo específico.
Finalmente, las notificaciones push no son exclusivas para dispositivos móviles, se pueden también recibir notificaciones en dispositivos de escritorio, para lo cual pueden consultar la compatibilidad de navegadores en la tabla proporcionada arriba en la sección de compatibilidad.
¿Quieres saber más?
Si deseas conocer más sobre este tema y las nuevas características de APEX 23.1, puedes consultar los documentos en los enlaces a continuación: