|
|
|
|
- Presentación
- Principio
- Gestión de las notificaciones en la aplicación Móvil
- Gestionar las notificaciones en el servidor de aplicaciones
Un dispositivo móvil puede recibir notificaciones push. Un Notification es un mensaje que se muestra (y se almacena) en el dispositivo, en el centro del dispositivo Notification. Un Notification puede ser usado para iniciar un Process por ejemplo. Un Notification se envía desde una aplicación remota, que normalmente se encuentra en un servidor. La aplicación para el envío de notificaciones puede ser desarrollada en WINDEV o WEBDEV, o a través de herramientas externas.. Se necesitan cuatro elementos para crear un sistema de empuje Notification: - Una aplicación móvil (iOS o Android) que se ejecuta en el dispositivo adecuado.
- Un servicio de Notification que se utiliza para distribuir los mensajes de empuje a los teléfonos o tabletas. Este servicio se presta:
- por Google: base de fuego
Observación: la aplicación creada antes de la versión 22 utiliza el mecanismo de mensajería en nube de Google (GCM). Este mecanismo quedará obsoleto para Google a partir de abril de 2019. - por Apple (APM).
- Un servidor de aplicaciones (o proveedor) que decide enviar los mensajes y que establece la comunicación con la base de datos de la empresa (este servidor puede ser un servicio web o una aplicación WEBDEV o WINDEV).
- Una base de datos, utilizada para almacenar los identificadores de los diferentes dispositivos que reciben los mensajes push, así como los datos de la empresa..
El modo de funcionamiento global de los mensajes push es el siguiente: - La aplicación se registra en el servicio de Apple o Google utilizando el "id de dispositivo" y el "id de aplicación"..
- Si el registro se realiza correctamente, el servicio de Apple o Google devuelve un Token (o "identificador de registro") a la aplicación.
- La aplicación transmite el Token al servidor de aplicaciones (proveedor).
- El servidor almacena el Token en su base de datos.
Un mensaje push se envía de acuerdo con el siguiente método: a. El servidor de aplicaciones envía un mensaje (mediante un socket SSL (iOS) o un socket HTTPS ( Android )) que contiene el Token al servicio de Apple o Google. Observación: este envío puede ser realizado por una aplicación externa, siempre y cuando ésta pueda acceder a la base de datos de la empresa y al certificado utilizado para la comunicación con el servicio Notification. b. El servicio de Apple o Google transmite el mensaje al dispositivo correspondiente. Gestión de las notificaciones en la aplicación Móvil Se pueden utilizar varias funciones para gestionar las notificaciones en la aplicación Móvil:
| | NotifPushDisable | Desactiva la gestión de las notificaciones push para una aplicación WINDEV Mobile (Android o IOS). | NotifPushEnable | Permite la gestión de las notificaciones push en una aplicación WINDEV Mobile (Android o iOS). | NotifPushProcedure | Especifica el procedimiento WLanguage llamado cuando una aplicación WINDEV Mobile (Android o iOS) recibe un push Notification. |
Atención: se requiere una configuración específica para que las aplicaciones móviles funcionen: - Una configuración específica debe realizarse a través de la consola Firebase. Para obtener más información, consulte Configuración Android (Firebase).
- Se debe realizar una configuración específica. Para obtener más información, consulte Configuración iOS.
El comportamiento cuando se recibe una Notification es el siguiente: - Si la aplicación está cerrada , el sistema muestra el Notification en la barra Notification. El usuario puede elegir validar el Notification. Si lo hace, se inicia la aplicación.
Si no se especifica ningún mensaje en el Notification, la aplicación se inicia y el Notification no se visualiza. A partir de Android 10, no se puede abrir una ventana si la aplicación está en segundo plano. Este comportamiento ya no es compatible. Una vez iniciada la aplicación, pueden darse dos casos:- Si se llamó a NotifPushProcedure en el código de inicialización del proyecto, se llama a la Procedure global que se pasa a esta función como parámetro y no se abre la primera ventana de la aplicación.
Observación: OpenMobileWindow debe ser llamada en el Procedure. - Si no se ha llamado a NotifPushProcedure, se abre la primera ventana de la aplicación.
- Si la aplicación ya está iniciada:
- Si se especifica un mensaje o un título en el Notification, el sistema muestra el Notification en la barra de Notification. Si el usuario hace clic en Notification, se llama al Procedure especificado en NotifPushProcedure (no ocurre nada si no se especifica).
Si no se especifica ningún mensaje ni título en el Notification, no se muestra el Notification y se llama directamente al Procedure. - Pueden presentarse dos casos:
- Si la aplicación está en primer plano, se llama directamente a la Procedure de NotifPushProcedure. Si no se especifica Procedure, sólo se muestra un botón "ok"..
- Si la aplicación está en el fondo, el sistema muestra el Notification. Si el usuario valida el Notification, la aplicación vuelve al primer plano y se llama al Procedure del NotifPushProcedure.
Observaciones: - La constante exeLaunch de ExeInfo le permite saber si la aplicación fue iniciada automáticamente por el sistema después de recibir un push Notification:
ExeInfo(exeLaunch) = exePushNotification
- WinStatus permite comprobar (si es necesario) la existencia de una ventana para abrirla:
PROCEDURE onPush(MyNotif is Notification)
IF WinStatus("WIN_Main") = NotFound THEN
ReceivePushNotif(MyNotif, True)
ELSE
OpenMobileWindow(WIN_Main, MyNotif)
END
Gestionar las notificaciones en el servidor de aplicaciones El servidor de aplicaciones es la aplicación WINDEV o el sitio WEBDEV que envía las notificaciones Push. Esta servidor de aplicaciones envía las notificaciones a través de NotifPushSend. Atención: NotifPushSend debe conocer los identificadores (tokens) de los teléfonos afectados por el Notification. Esta información debe ser devuelta por la aplicación móvil. WINDEV Mobile cuenta con los siguientes ejemplos: - WD_Push_Server (servicio web):
- En el código del proyecto, es necesario especificar:
- La tecla Android API
- El tipo de plataforma Android: utilice las constantes npeFirebase o npeGCM ( npeFirebase por Default 75006c007400 ).
- La ruta de la Certificate que enviará las notificaciones de iOS (Certificate que se desplegará con el Webservice).
- Despliegue del servicio web.
- Recuperar la URL del WSDL desplegado.
- WM Push (Aplicación móvil que recibe notificaciones):
- Sustituir la URL del Webservice ya importado en el proyecto por la URL recuperada anteriormente.
- Despliegue android:
- Recupera el archivo de configuración de Firebase google-services.JSON, o bien recupera el número de proyecto en Google Cloud Messaging.
- En la generación de Android asistente, asegúrese de que el nombre del paquete es el mismo que el definido en los servicios de Google.
- iOS implementación: Especifique el mismo paquete que el definido en la consola de Apple
- Send Push (Aplicación cliente para enviar notificaciones a través del Webservice):
- Sustituye la URL del Webservice ya importado en el proyecto por la URL recuperada anteriormente.
- Ejecute la aplicación para enviar notificaciones.
- En el caso de iOS, no olvide especificar el paquete de la aplicación a la que se enviarán las notificaciones.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|