Saltar al contenido

Personalización del plugin de Cordova

Notificaciones push en primer plano

Anchor link to

Al recibir una notificación push en segundo plano, no se activan eventos hasta que se hace clic en la notificación push. Después de abrirla, el plugin de Pushwoosh dispara los eventos push-receive y push-notification.

Cuando se recibe una notificación push en primer plano, el plugin dispara push-receive automáticamente y crea una notificación en el Centro de Notificaciones. Cuando se abre esta notificación, dispara push-notification.

Puede escuchar el evento push-receive para reaccionar inmediatamente a una notificación push en caso de que se reciba en primer plano, por ejemplo, para actualizar el contenido en una página actual de su aplicación. push-notification, por otro lado, se utiliza para reaccionar a un evento de clic en una notificación, que requiere la interacción del usuario, por ejemplo, para navegar dentro de su aplicación, activar un nuevo proceso en su aplicación, etc.

Para cambiar la apariencia de la notificación push en primer plano, puede utilizar las preferencias IOS_FOREGROUND_ALERT_TYPE y ANDROID_FOREGROUND_PUSH:

IOS_FOREGROUND_ALERT_TYPE

  • NONE – no mostrar una notificación cuando la aplicación está en primer plano (predeterminado)
  • BANNER – muestra una alerta de banner dentro de la aplicación
  • ALERT – notificación de alerta

ANDROID_FOREGROUND_PUSH

  • true – no manejar automáticamente las notificaciones push en primer plano
  • false – manejar automáticamente las notificaciones push en primer plano (predeterminado)

Ejemplo:

cordova plugin add pushwoosh-cordova-plugin --variable IOS_FOREGROUND_ALERT_TYPE="ALERT" --variable ANDROID_FOREGROUND_PUSH="true"

Sonido de push personalizado

Anchor link to

Para habilitar un sonido de notificación personalizado en Android, coloque los archivos de sonido en la carpeta www/res y especifique cada sonido en config.xml:

<?xml version=‘1.0’ encoding=‘utf-8’?>
<widget id="YOUR_ID" version="1.0.0" xmlns="http://www.w3.org/ns/widgets” xmlns:cdv=“http://cordova.apache.org/ns/1.0">
...
<platform name="android">
<allow-intent href="market:*" />
...
<-- Add this line for each sound -->
<resource-file src="www/res/push.wav" target="res/raw/push.wav" />
</platform>
</widget>

Los sonidos estarán accesibles en el menú desplegable Sound del panel Send Push.

En iOS, los archivos de sonido aún no se asocian automáticamente con la Aplicación Pushwoosh, pero se pueden usar manualmente, por ejemplo, www/res/sound_name.wav.

Icono de push personalizado

Anchor link to

El icono de la notificación push se puede personalizar en Android localmente usando pw_notification como nombre de recurso para dicho icono (ver muestra 1 2); o de forma remota haciendo referencia a cualquier nombre de recurso en la configuración de Icon en el panel Send Push.

Datos de push personalizados

Anchor link to

Se pueden enviar datos de push personalizados utilizando la configuración Action en el panel Send Push. Para recibir y manejar dichos datos, utilice el siguiente código:

document.addEventListener('push-notification',
function(event) {
var message = event.notification.message; // Push message
var userData = event.notification.userdata; // Custom push data
if (userData) {
// handle custom push data here
}
}
);

Control del nivel de registro (Log level)

Anchor link to

Para ayudar con la depuración y la integración, el SDK imprimirá todas las solicitudes en la consola por defecto. Cuando esté listo para la compilación de producción, establezca la variable LOG_LEVEL en uno de los siguientes valores:

  • NONE – sin registros del SDK
  • ERROR – solo mostrar errores en la consola
  • WARNING – mostrar advertencias
  • INFO – mostrar mensajes informativos
  • DEBUG – mostrar todo, incluida la información de depuración (predeterminado)

Ejemplo:

cordova plugin add pushwoosh-cordova-plugin --variable LOG_LEVEL="INFO"

Enlaces profundos (Deep linking)

Anchor link to

Recomendamos usar https://github.com/EddyVerbruggen/Custom-URL-scheme
Es súper fácil configurar enlaces profundos para Cordova y funciona con la funcionalidad de enlaces profundos de Pushwoosh de forma nativa.

Puede encontrar la instalación y el uso en esta guía o en la documentación del plugin.

Puente JS de Rich Media

Anchor link to

Puede llamar a sus funciones JS desde Rich Media en Cordova WebView a través de interfaces de javascript.
Una llamada desde un Rich Media debe tener el siguiente formato:

<interface>.callFunction(‘<function_name>’, <params_string>)

Ejemplo:

1. Cree un Rich Media con una llamada de javascript:

testBridge.callFunction('testFunction', JSON.stringify({'param1' : 1, 'param2':'test'}))

2. Agregue una interfaz de javascript a su proyecto:

pushNotification.addJavaScriptInterface('testBridge');

3. Agregue la función:

function testFunction(params) {
alert("Bridge is working! " + params.param1 + " " + params.param2);
}

Uso del plugin de Pushwoosh con otros servicios de FCM

Anchor link to

Si su aplicación utiliza otros plugins que dependen de firebase-messaging, podría resultar en conflictos, o en que uno de los plugins no funcione como se espera. Para resolver este conflicto, puede agregar una clase FirebaseMessagingService personalizada que enrutará las notificaciones push entre los plugins. El plugin de Pushwoosh para Cordova contiene una plantilla de esta clase que puede usar tal cual para forzar que todas las notificaciones pasen por los manejadores de Pushwoosh o modificarla para manejar también las notificaciones de otros proveedores. Para habilitar la plantilla, descomente las siguientes líneas en el plugin.xml del plugin:

<service android:name="com.pushwoosh.plugin.pushnotifications.CustomFirebaseMessagingService" android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>

Comparta sus comentarios con nosotros

Anchor link to

Sus comentarios nos ayudan a crear una mejor experiencia, por lo que nos encantaría saber de usted si tiene algún problema durante el proceso de integración del SDK. Si enfrenta alguna dificultad, no dude en compartir sus pensamientos con nosotros a través de este formulario.