¡Esta es una revisión vieja del documento!




La tecnología push es una forma de comunicación en la que la petición de envío de información tiene origen en el servidor, al contrario que ocurre con la tecnología pull, en la que la petición tiene origen en el cliente.

Ejemplos de aplicaciones que utilizan tecnología PUSH son las aplicaciones de mensajería instantánea (Whastapp, telegram…) ó aplicaciones que envían noticias cuando estas se producen, enviando una notificación al usuario.

Esta opción es una de las recomendaciones expresas de los sistemas operativos móviles para hacer funcionar las aplicaciones off-line con los sistemas de ahorro de batería, de forma que las aplicaciones en segundo plano entran en funcionamiento cuando reciben una notificación PUSH con alta prioridad.


1.- Para enviar una notificación PUSH a un dispositivo, lo primero que necesitamos es utilizar un servidor de PUSH. Para ello, más abajo se indican los pasos a seguir para poder registrarnos con firebase de google.

2.- A continuación tendremos que registrar el dispositivo en el servidor PUSH para recibir un TOKEN (El equivalente a tener un número de teléfono para poder recibir llamadas).


3.- Una vez tengamos el TOKEN, tendremos que enviarlo a la parte servidora para que puedan enviarnos mensajes cuyo destinatario sea nuestro TOKEN.

4.- Por último, la parte servidora enviará llamadas JSON al servidor de PUSH para que este a su vez finalmente nos envíe la notificación a los dispositivos correspondientes.


Materia Descripción
Ahorro de Batería Problemática con la gestión de batería en los dispositivos móviles.
Registro en servidor PUSH Registrarnos en un servidor PUSH para poder utilizar las notificaciones.
Uso de PUSH con el replicador Cómo el replicador puede utilizar las notificaciones PUSH para un mejor funcionamiento.
Uso de PUSH con XOne Monitor Cómo el XOne Monitor puede utilizar las notificaciones PUSH.
Uso de PUSH con herramientas externas. Cómo enviar notificaciones PUSH con herramientas externas.



Es posible configurar las notificaciones Push a una aplicación realizada con XOne, SIN hacer uso del componente XOne Replicator Server, de tal forma que el envío de las notificaciones se realizan con una herramienta externa, pero los framework pueden detectar dichas notificaciones, de tal forma que pueden interactuar con ellas.
Actualmente esta funcionalidad solo está disponible para dispositivos Android.

La implementación consiste en tres partes:
Registro del Dispositivo en la Nube.
Envío del Mensaje Push.
Recepción del Mensaje Push.


Registro del Dispositivo en la Nube


Se debe realizar el registro del dispositivo en la nube para notificaciones Push de Google y envío del Token Push de vuelta al servidor que va a realizar el envío de las notificaciones.

Para esto se requiere
Definir el atributo push-id=“NumeroIdentificador” en el nodo <app> del mappings, siendo “NumeroIdentificador”, el Sender ID que se obtiene en la consola de APIs de Google, tal y como se ha explicado en el punto Para Dispositivo Android.
Se envía el Token Push al servidor externo, que preferiblemente se debe realizar con una conexión segura con una colección online. Ejecutar el siguiente método al loguearse en la aplicación, en concreto se indica el código en JavaScript.


Ejemplo:

   appData.registerPush(function(mEvento) 
  {
    mEvento.pushToken});


Envío del Mensaje Push


Para más información de cómo implementar los mensajes push en una aplicación, seguir el siguiente enlace:

http://developers.google.com/cloud-messaging/downstream

La aplicación del cliente, llamará al proveedor de push (google - apple) y éstos envían la notificación PUSH al dispositivo que sea.

Para que nos puedan enviar una notificación y que nuestro Framework sea capaz de interpretarla, junto con la información que se envíe, hay que añadir algunos parámetros “extra”:

Parámetros Extra
Dato “source”, con valor “push_server”. Necesario para que el framework pueda distinguir la pro-cedencia de la Notificación Push y actuar en consecuencia.
Dato “notification_title” Su valor será el título de la Notificación Push.
Dato “notification_message” Su valor será el mensaje de la Notificación Push.


El resto de Datos que se pasen, serán los que se reciban en el dispositivo para procesarlos como se crea conveniente, a continuación se pone un ejemplo de mensaje:

 { "data": {
    "datomensaje": "Esto es una prueba",
    "source": "push_server",
    "notification_title": "Titulo de la notificacion",
    "notification_message": "Mensaje de la notificacion"
  },
  "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdF..."
 }


Recepción del Mensaje Push


Para procesar el mensaje push, tendremos que definir un nodo “onpushnotificationclick” en la colección “Empresas”, donde se entrará directamente cuando el usuario pulse sobre la notificación que se reciba en el dispositivo.

En dicho nodo se pondrá un parámetro que en el ejemplo hemos llamado “mensajepush”, que contendrá los valores que hayamos recepcionado en el mensaje Push.
datomensaje es el nombre de uno de los datos que viene en el mensaje Push del Servidor.
Se pueden poner tantos como se necesiten, siempre teniendo en cuenta que NO pueden llamarse con caracteres especiales, como espacios, acentos, ñ, etc…

 <onpushnotificationclick>
    <action name="runscript">
    <param name="mensajepush" />
            <script language="vbscript">
                ui.showToast "vbscript: " + mensajepush.datomensaje
         </script>
    </action>
 </onpushnotificationclick>


Más información de la Réplica con Push aquí