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 19:02]
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.\\ 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 --> <!-- Código en la colección entry-point -->
     <prop name="MAP_SENDER_ID" type="T" />     <prop name="MAP_SENDER_ID" type="T" />
Línea 16: Línea 17:
     <prop name="MAP_TOKENPUSH" type="T" />     <prop name="MAP_TOKENPUSH" type="T" />
  
-<!-- Ponemos el código en el after-edit de la colección entry-point para que se registre cuando entre en la aplicación -->+<!-- Ponemos el código en el after-edit de la colección entry-point para obtener el TOKEN cuando entre en la aplicación -->
  
 <after-edit show-wait-dialog="false" refresh="false"> <after-edit show-wait-dialog="false" refresh="false">
  <action name="runscript">  <action name="runscript">
  <script language="javascript">  <script language="javascript">
- <!-- En este caso cogemos los valores googleSenderId y googleApiKey del registro de la empresa actual, pero podría especificarse a cañón en el código -->+ <!-- 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_SENDER_ID=appData.getCurrentEnterprise().SENDERID;
- //self.MAP_APIKEY=appData.getCurrentEnterprise().GOOGLEAUTHKEY;+ self.MAP_APIKEY=appData.getCurrentEnterprise().GOOGLEAUTHKEY;
  self.MAP_TOKENPUSH="";  self.MAP_TOKENPUSH="";
  
Línea 34: Línea 35:
 </after-edit> </after-edit>
 </code> </code>
-|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>.| 
 \\ \\
-**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 60: 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.|