Manejo de las notificaciones push en Cordova

improve this page | report issue

Visión general

Antes de que las aplicaciones iOS, Android y Windows Cordova reciban y visualicen notificaciones push, es necesario añadir el plugin Cordova cordova-plugin-mfp-push al proyecto Cordova. Una vez se haya configurado la aplicación, se pueden utilizar la API de notificaciones que MobileFirst proporciona con el propósito de registrar y anular el registro de dispositivos, suscribir y anular la suscripción de etiquetas y manejar aplicaciones. En esta guía de aprendizaje, aprenderá a manejar el envío de notificaciones en aplicaciones Cordova.

Nota: Actualmente en Cordova no se da soporte a las notificaciones autenticadas debido a un defecto. Sin embargo se proporciona un método alternativo: cada llamada de API de MFPPush puede ser acomodada mediante WLAuthorizationManager.obtainAccessToken("push.mobileclient").then( ... );. La aplicación de ejemplo que se proporciona utiliza este método alternativo.

Para obtener información sobre las notificaciones interactivas o silenciosas en iOS, consulte:

Requisitos previos:

Ir a

Configuración de notificaciones

Cree un nuevo proyecto Cordova o utilice uno ya existente, y añada una o varias de las plataformas soportadas: iOS, Android, Windows.

Si MobileFirst Cordova SDK todavía no está presente en el proyecto, siga las instrucciones en la guía de aprendizaje Adición de Mobile Foundation SDK para aplicaciones Cordova.

Añadir el plugin de push

  1. Desde una ventana de línea de mandatos, vaya a la raíz del proyecto Cordova.

  2. Añada el plugin ejecutando el mandato:

    cordova plugin add cordova-plugin-mfp-push
    
  3. Compile el proyecto Cordova ejecutando el mandato:

    cordova build
    

Plataforma iOS

La plataforma iOS precisa de un paso adicional.
En Xcode, habilite el envío de notificaciones para la aplicación en la pantalla Funcionalidades.

Importante: el bundleId seleccionado para la aplicación debe coincidir con el AppID creado con anterioridad en el sitio de Apple Developer. Consulte la guía de aprendizaje [Visión general de notificaciones push].

imagen de la funcionalidad en Xcode

Plataforma Android

La plataforma Android precisa de un paso adicional.
En Android Studio, añada la siguiente actividad a la etiqueta application:

<activity android:name="com.ibm.mobilefirstplatform.clientsdk.android.push.api.MFPPushNotificationHandler" android:theme="@android:style/Theme.NoDisplay"/>

API de notificaciones

Lado del cliente

Función Javascript Descripción
MFPPush.initialize(success, failure) Inicializa la instancia MFPPush.
MFPPush.isPushSupported(success, failure) Indica si el dispositivo da soporte a notificaciones push.
MFPPush.registerDevice(options, success, failure) Registra el dispositivo con el servicio de notificaciones push.
MFPPush.getTags(success, failure) Recupera todas las etiquetas disponibles en una instancia de servicio de notificaciones push.
MFPPush.subscribe(tag, success, failure) Suscribe a una etiqueta concreta.
MFPPush.getSubsciptions(success, failure) Recupera las etiquetas de servicio a las que actualmente está suscrito.
MFPPush.unsubscribe(tag, success, failure) Anula la suscripción a una etiqueta concreta.
MFPPush.unregisterDevice(success, failure) Anula el registro del dispositivo del servicio notificaciones push.

Implementación de API

Inicialización

Inicializa la instancia MFPPush.

  • Requerido para la aplicación de cliente para conectarse al servicio MFPPush con el contexto de aplicación correcto.
  • Primero se debe llamar al método de la API antes de utilizar cualquier otra API MFPPush.
  • Registra la función de retorno de llamada para manejar las notificaciones push recibidas.
MFPPush.initialize (
    function(successResponse) {
        alert("Successfully intialized");
        MFPPush.registerNotificationsCallback(notificationReceived);
    },
    function(failureResponse) {
        alert("Failed to initialize");
    }
);

Está push soportado

Comprueba si el dispositivo da soporte a las notificaciones push.

MFPPush.isPushSupported (
    function(successResponse) {
        alert("Push Supported: " + successResponse);
    },
    function(failureResponse) {
        alert("Failed to get push support status");
    }
);

Registrar el dispositivo

Registre el dispositivo para el servicio de notificaciones push. Si no se proporcionan opciones, se pueden establecer en null.

var options = { };
MFPPush.registerDevice(
    options,
    function(successResponse) {
        alert("Successfully registered");
    },
    function(failureResponse) {
        alert("Failed to register");
    }
);

Obtener etiquetas

Recupere todas las etiquetas disponibles desde el servicio de notificaciones push.

MFPPush.getTags (
    function(tags) {
        alert(JSON.stringify(tags));
},
    function() {
        alert("Failed to get tags");
    }
);

Suscribir

Suscriba las etiquetas deseadas.

var tags = ['sample-tag1','sample-tag2'];

MFPPush.subscribe(
    tags,
    function(tags) {
        alert("Subscribed successfully");
    },
    function() {
        alert("Failed to subscribe");
    }
);

Obtener suscripciones

Recupere las etiquetas a las que el dispositivo está actualmente suscrito.

MFPPush.getSubscriptions (
    function(subscriptions) {
        alert(JSON.stringify(subscriptions));
    },
    function() {
        alert("Failed to get subscriptions");
    }
);

Anular la suscripción

Anule la suscripción de etiquetas.

var tags = ['sample-tag1','sample-tag2'];

MFPPush.unsubscribe(
    tags,
    function(tags) {
        alert("Unsubscribed successfully");
    },
    function() {
        alert("Failed to unsubscribe");
    }
);

Anular el registro

Anule el registro del dispositivo de una instancia de servicio de notificaciones push.

MFPPush.unregisterDevice(
    function(successResponse) {
        alert("Unregistered successfully");
    },
    function() {
        alert("Failed to unregister");
    }
);

Manejar una notificación push

Las notificaciones push recibidas se pueden manejar trabajando con el objeto de respuesta en la función de retorno registrada.

var notificationReceived = function(message) {
    alert(JSON.stringify(message));
};

Imagen de la aplicación de ejemplo

Aplicación de ejemplo

Pulse para descargar el proyecto Cordova.

Nota: Se necesita instalada la última versión de Google Play Services en el dispositivo Android para poder ejecutar el ejemplo.

Uso de ejemplo

Siga el archivo README.md de ejemplo para obtener instrucciones.

Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on February 18, 2019