Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
wiki:3.-servidor:3.19.-tecnologia-push:e.-push-externo:start [2019/03/06 17:18]
ejetoro [Registro del Dispositivo en el servidor PUSH]
wiki:3.-servidor:3.19.-tecnologia-push:e.-push-externo:start [2019/03/11 10:25] (actual)
ejetoro [Envío del Mensaje Push]
Línea 1: Línea 1:
 ===== Envío de PUSH con herramientas Externas ===== ===== Envío de PUSH con herramientas Externas =====
 \\ \\
-Es posible configurar las notificaciones Push a una aplicación realizada con XOne.\\ +Es posible configurar las notificaciones Push a través de una aplicación realizada con XOne.\\ 
-El envío puede realizarse con una herramienta externael framework puede detectar dichas notificaciones, de tal forma que se pueda interactuar con ellas. \\+El envío puede realizarse con una herramienta externa el framework puede detectar dichas notificaciones, de tal forma que se pueda interactuar con ellas. \\
 \\ \\
  
 ==== Registro del Dispositivo en el servidor PUSH ==== ==== Registro del Dispositivo en el servidor PUSH ====
 \\ \\
-Se debe realizar el registro del dispositivo en el servidor de Push y el Token que recibamos del servidor cuando nos registremos, tendremos que enviarlo al sitio donde vayamos a realizar el envío de las notificaciones. \\+Se debe realizar el registro del dispositivo en el servidor de Push y el Token que recibamos del servidor cuando nos registremos, tendremos que enviarlo al sitio desde donde vayamos a realizar el envío de las notificaciones. \\ 
 +\\ 
 +Para ello la plataforma XOne provee de un método **<wrap hi>appData.registerPush</wrap>**, al cual se le debe pasar el valor googleSenderId que hayamos obtenido cuando nos registramos con firebase.\\ 
 +\\ 
 +<code xml> 
 +<!-- Código en la colección entry-point --> 
 +    <prop name="MAP_SENDER_ID" type="T" /> 
 +    <prop name="MAP_APIKEY" type="T" /> 
 +    <prop name="MAP_TOKENPUSH" type="T" />
  
-^Paso 1^ +<!-- Ponemos el código en el after-edit de la colección entry-point para obtener el TOKEN cuando entre en la aplicación --> 
-|Definir el atributo push-id="<nowiki>NumeroIdentificador</nowiki>en el nodo <app> del mappingssiendo “[[wiki:3.-servidor:3.19.-tecnologia-push:NumeroIdentificador]]”, el Sender ID que se obtiene en la consola de APIs de Google, tal 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ónen concreto se indica el código en <nowiki>JavaScript</nowiki>.|+<after-edit show-wait-dialog="false" refresh="false"> 
 + <action name="runscript"> 
 + <script language="javascript"> 
 + <!-- En este caso cogemos los valores googleSenderId y googleApiKey que tenemos en BD del registro de la empresa actualútil si tenemos varios entornos --> 
 + self.MAP_SENDER_ID=appData.getCurrentEnterprise().SENDERID; 
 + self.MAP_APIKEY=appData.getCurrentEnterprise().GOOGLEAUTHKEY; 
 + self.MAP_TOKENPUSH=""; 
 + 
 + <!-- En esta función registrarPushnos registramos en el servidor de PUSH obtenemos el TOKEN--> 
 + <!-- Le pasamos como parámetros el googleSenderId y el objeto actual para que podamos devolver el TOKEN y guardárnoslo. --> 
 + registrarPush(self.MAP_SENDER_ID,self); 
 + //requestIgnoreBatteryOptimizations(); 
 + </script> 
 + </action> 
 +</after-edit> 
 +</code>
 \\ \\
-**Ejemplo:**+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 <nowiki>JavaScript</nowiki>.\\
 \\ \\
-<code javascript> + 
-   appData.registerPush(function(mEvento)  +<code javascript registerpush.js
-  +function registrarPush(sPushId,selfObject) { 
-    mEvento.pushToken + 
-  … + /** Ordenamos el registro push. **/ 
-  });+ appData.registerPush(sPushId); 
 +  
 + appData.bind("onPushRegistered", function(evento{ 
 + /* 
 + * Lo que queramos hacer cuando ya tengamos registrado el dispositivo y tengamos token 
 + */ 
 + let ventana = ui.getView(selfObject); 
 + if (ventana === null) 
 + return; 
 +
 + selfObject.MAP_TOKENPUSH = evento.pushToken; 
 + ventana.refresh("MAP_TOKENPUSH"); 
 + //ui.showToast("onPushRegistered(), Token push: " + evento.pushToken); 
 + }); 
 +  
 + appData.bind("onPushReceived", function(evento) { 
 + /* 
 + * Aquí es donde recibimos un mensaje push, con los extras en forma de 
 + * un objeto javascript normal y corriente. Previamente le hemos filtrado 
 + * los extras del mensaje push verdadero que sean del framework */ 
 + //ui.showToast("¡Mensaje push recibido!"); 
 +  
 + if (evento.notification-type===0){ 
 + ui.showToast(evento.notification_title); 
 +
 + }); 
 + 
 + appData.bind("onPushRegistrationFailure", function(mEvento) { 
 + //ui.msgBox("Mensaje", "Ha ocurrido un error al registrar el push", 0); 
 + }); 
 +}
 </code> </code>
  
Línea 37: Línea 90:
 \\ \\
 ^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** “source”, con valor “push_server”.| Necesario para que el framework pueda distinguir la procedencia 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_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.| |**Dato** “notification_message”| Su valor será el mensaje de la Notificación Push.|