Ir al contenido principal

APEX 23.1 - Notificaciones Push


Las notificaciones push PWA (Progresive Web App) en Oracle APEX son mensajes instantáneos que pueden ser enviados a los usuarios de una aplicación web progresiva sin que estos tengan que estar activamente utilizando la aplicación en ese momento. 

Estas notificaciones se envían directamente a los dispositivos móviles o computadoras de los usuarios, permitiendo que estos se mantengan informados sobre actualizaciones relevantes, novedades o cualquier otra información importante relacionada con la aplicación que deseemos enviarles.



Las notificaciones push PWA en Oracle APEX son una herramienta poderosa para aumentar la interacción de los usuarios con la aplicación y mejorar la experiencia del usuario en general. 
Algunos usos que se le dan son:  enviar recordatorios, alertas, actualizaciones de contenido, promociones, estos entre otros mensajes que ayudan a mantener a los usuarios comprometidos y conectados con la aplicación.

Mediante la configuración adecuada en Oracle APEX, los desarrolladores pueden programar y enviar notificaciones push de manera automatizada, segmentada y personalizada, lo que permite llegar a los usuarios de manera efectiva y oportuna. Estas notificaciones pueden incluir texto, imágenes, enlaces y otros elementos interactivos que permiten una comunicación más dinámica y atractiva.

En resumen, las notificaciones push PWA en Oracle APEX son una característica clave para mejorar la comunicación con los usuarios, aumentar la retención de usuarios, impulsar la participación y ofrecer una experiencia de usuario más enriquecedora en las aplicaciones web progresivas desarrolladas en esta plataforma.

La configurar de las notificaciones push en APEX es una cosa sencilla.
Lo podemos hacer cuando creamos una nueva aplicación o habilitando la funcionalidad en una aplicación ya existente.

Cuando se trata de nuevas aplicaciones, simplemente vamos al proceso de creación de aplicaciones estándar y nos aseguramos de seleccionar las opciones Install Progressive Web App y Push Notifications que se encuentran en la sección Funcionalidades al crear nuestra aplicación



Por otra parte, cuando la aplicación ya existe y no hemos habilitado estas opciones desde el inicio, debemos hacer habilitar estas funcionalidades.
Para ello, vamos a los componentes compartidos de la aplicación
Seleccionamos la opción Progressive Web App de la sección User Interface y nos aseguraremos de habilitar el switch para habilitar las opciones: Progressive Web App, Instalable y Push Notifications.
A continuación, seguimos los seteos intuitivos en la nueva sección Push Notification que e activa, generando las credenciales de seguridad para la aplicación y agregando la página de configuración para usuarios.



Oracle APEX prioriza la seguridad y la experiencia de usuario en este tema de las Notificaciones.
Recuerden, este puede volverse  un servicio bastante invasivo por lo que es importante garantizar a los usuarios que ellos
puedan recibir solo las notificaciones tipo push que han consentido recibir.
Esto permite evitar patrones de spam y mantener el medio ambiente de nuestras aplicaciones amigables al usuario.

De forma a cumplir con ello, Oracle APEX presenta un proceso de suscripción y des-suscripción directa al servicio de Notificaciones Push.
Cuando los usuarios ejecutan la aplicación, pueden acceder a la opción de notificaciones push en el menú de seteos bajo su nombre de usuario.
Al habilitar las notificaciones push en sus dispositivos y autorizando a la aplicación APEX, sus preferencias de suscripción son guardadas de forma segura en la metadata repository de APEX.


Una vez que el seteo de nuestra aplicación se ha completado y los usuarios han comenzado a suscribirse, podemos proceder a enviarles su primera notificación.


El envío de notificaciones push desde una aplicación ápex puede ser realizada con dos diferentes métodos, ambos ofreciendo sus propios beneficios y niveles de control.
Comprender estos métodos puede ayudar a elegir la mejor opción para las necesidades específicas que se tengan, sin embargo, independientemente al método que elijan para enviar notificaciones
Es importante identificar a los usuarios que se han suscripto a la funcionalidad con el objetivo de decidir si utilizamos el método de un proceso de página declarativo, o la de una API de manera significativa.

Oracle APEX ofrece dos vistas sobre las notificaciones push que nos ayudan a analizar los datos
La primera es la APEX_APPL_PUSH_SUBSCRIPTIONS
Esta es una vista que contiene la lista de usuarios que se han suscripto a la aplicación e incluye el nombre del usuario suscripto y el endpoint suscripto, el cual es el identificador único para cada dispositivo del usuario desde el cual se ha realizado la suscripción


La segunda vista es la APEX_PUSH_NOTIFICATIONS_QUEUE
Esta vista contiene las notificaciones pendientes, incluye el contenido de la notificación en si misma como también el mensaje de error si en algún momento el proceso de envío ha fallado de alguna forma al enviar una notificación push.



En APEX, el envío de mensajes push se realiza típicamente a través del uso de un proceso de página Nativo llamado Send Push Notification
Esta opción es ideal para los usuarios que prefieren un proceso directo que no requieran de gran personalización.


Para los desarrolladores que buscan mas control sobre la apariencia y el contenido de las notificaciones push, la API: APEX_PWA ofrece más flexibilidad.
Como vemos aquí en pantalla, utilizamos el proceso SEND_PUSH_NOTIFICATION para ello


Mediante el uso de esta API podemos gestionar parámetros adicionales como el icono, o, incluso, elegir una aplicación de destino diferente.


E incluso, podemos utilizar esta api como parte de un proceso PL/SQL desde el cual nos permita realizar iteraciones sobre varios usuarios para realizar un envío de notificaciones masivo de una sola vez.


Finalmente, es importante comprender que, cuando enviamos una notificación, esta de hecho es agregada a una cola de notificaciones y el motor de APEX es el responsable de despachar la cola cada cierta cantidad de tiempo: por default cada dos minutos.

La API APEX_PWA contiene un procedimiento para forzar el envío expeditivo de las notificaciones. Esto se realiza mediante el proceso PUSH_QUEUE, de esta forma todas las notificaciones que se encuentren en cola son despachadas de forma inmediata.


Puntos importantes a tener en cuenta:

Para que la aplicación pueda ser instalada debe cumplirse con la siguiente tabla de compatibilidades, allí pueden notar que para IOS en particular solo pueden realizar la instalación mediante Safari.


Y por último, tén en cuenta algunos inconvenientes que se te pueden presentar:

Mensaje: “Not Supported” en iOS cuando se muestra la página de configuración al usuario

En primer lugar, el dispositivo debe tener instalado iOS 16.4 o una versión posterior, ahora, si el dispositivo ya lo tiene instalado, debes tener en cuenta que las notificaciones push solo están disponibles en los navegadores Safari para las PWA instaladas. Intenta instalar la PWA accediendo desde Safari y vuelve a consultar la página de configuración del usuario.

Las notificaciones no se entregan a mi dispositivo

Verifica que el nombre de usuario se ha introducido correctamente en el proceso de envio, el nombre de usuario distingue entre mayúsculas y minúsculas.
Comprueba si las notificaciones están habilitadas en la configuración de tu navegador. 
Esto se hace haciendo clic en el menú de tres puntos en la esquina superior derecha de la ventana del navegador y seleccionando "Configuración" o "Preferencias". 
Desde allí, buscamos una sección llamada “Privacidad y seguridad”, Alli vemos en "Notificaciones" o "Configuración del sitio" y asegúrate de que las notificaciones estén activadas para el sitio web correspondiente.
Si las notificaciones están habilitadas pero sigues sin recibirlas, prueba a borrar la memoria caché y las cookies de tu navegador.
Verifica si el motor de tu navegador, el navegador a través del cual está instalada la PWA, permite enviar notificaciones en la configuración de tu sistema operativo según la tabla de compatibilidades
Por último, asegúrate de estar conectado a Internet y de que tu dispositivo no esté en modo "No molestar". Estas configuraciones a veces pueden impedir que lleguen las notificaciones.

Este dispositivo falló en habilitar las push notifications

En este caso debemos comenzar verificando las credenciales en la configuración de la aplicación web progresiva.
Después de instalar o importar una aplicación en el espacio de trabajo, se deben generar las credenciales para esta aplicación. 
Si no realizó este paso, debemos hacr clic en el botón (Regenerar credenciales) en la pestaña Notificaciones push. 
Sin embargo, cuidado, porque al regenerar credenciales ya válidas, se invalidan todas las suscripciones existentes que usaron las credenciales del par de claves anterior que estaban vigentes.

Cambiar el alias de la aplicación bloquea los envios de notificaciones push

Actualizar un alias de aplicación cambia la estructura de la URL y hace que el service worker se invalide.
Se recomienda no actualizar un alias de aplicación para sistemas de producción, o los usuarios tendrán que suscribirse nuevamente a las notificaciones push.

ORA-24247: network Access denied by Access control list (ACL)
Este error no debería ocurrir al utilizar APEX Service o APEX en Autonomous Database. 
Sin embargo, en otros entornos donde es necesario configurar manualmente qué solicitudes de red salientes están permitidas habilitando las ACL. Ver con el DBA

ORA-29024: Error en la Validación del Certificado 
APEX envía las notificaciones push mediante el protocolo seguro HTTPS, esto requiere que la instancia de APEX tenga certificados de confianza de los sitios de Apple, Microsoft, Mozilla y Google que alojan sus respectivas API REST de entrega de notificaciones push. 
Si no tienes una wallet configurada, muchos usuarios de la comunidad APEX han utilizado un script generador de wallets de confianza con certificación de código abierto, cuyo archivo README explica cómo usarlo y actualizar APEX para que apunte a la nueva wallet generada. Aquí abajo les dejo el link de este generador.


Y bueno, existen un par de problemas más reportados que tienen solución, mas que nada relacionados a instalaciones on-premise (o sea, locales), pero son mas puntuales por lo que con estos que les acabo de mostrar prácticamente hablamos del 90% de los casos y si necesitan mas asistencia, ya saben donde encontrarme. :)

Comentarios

Entradas populares de este blog

Oracle APEX 24.1 ya se encuentra disponible!

Oracle APEX 24.1 ya se encuentra disponible! Descargalo:  https://www.oracle.com/tools/downloads/apex-downloads/ Ashish Mohindroo, Vicepresidente de gestión de productos Plataforma de aplicaciones APEX Low Code ha anunciado hoy Lunes 17 de Junio de 2024 que Oracle APEX 24.1 ya está disponible para su descarga y se está implementando en las regiones de desarrollo de aplicaciones OCI APEX y servicio de nube de base de datos autónoma en todo el mundo. Con esta última versión, aprende a crear tu primera aplicación de bajo código con GenAI. Esta versión se basa en tres pilares principales de innovación que permiten crear aplicaciones atractivas de nivel empresarial con facilidad:  Desarrollo de aplicaciones asistido por IA Aprovechamiento del poder de la plataforma de datos de próxima generación de Oracle y  Potentes componentes de nivel empresarial para crear aplicaciones web y aplicaciones para web móviles sofisticadas. Desarrollo de aplicaciones asistido por IA Con este lanzamiento, se i

APEX 02-06 - Cosa Número 5 de 10: Los estándares de SQL y PL/SQL

Aunque APEX es una plataforma de desarrollo de bajo código, rara vez nos salimos con la nuestra con proyectos que no involucren al menos algo de código. Muchos, de hecho, involucran MUCHO código y lo más probable es que el tuyo también lo haga. El código SQL y PL/SQL es fundamentalmente uno de los códigos más importantes que escribo para mis clientes y socios. La diferencia entre un SQL y PL/SQL que funciona bien y otro que no funciona puede ser la diferencia entre un sistema exitoso y una gran decepción. Ya sea que te guste tu código en minúsculas o mayúsculas o prefieras los nombres de tus tablas en singular o plural, o tengas preferencias particulares sobre el formato del código, es importante tener estándares que estén documentados e implementados en tu base de código. Mis estándares de codificación SQL y PL/SQL están adaptados de trivadis ( https://trivadis.github.io/plsql-and-sql-coding-guidelines/v4.3/ ) y, sean cuales sean tus estándares, asegúrate de comunicarlos bien a todo t