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. De forma predeterminada, también muestra una notificación en primer plano. Cuando el usuario la abre, el plugin 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.

De forma predeterminada, el plugin muestra notificaciones en primer plano tanto en iOS como en Android. Para cambiar esto, configure las variables IOS_FOREGROUND_ALERT_TYPE y ANDROID_FOREGROUND_PUSH al instalar el plugin:

IOS_FOREGROUND_ALERT_TYPE

  • ALERT – mostrar notificaciones en primer plano (predeterminado)
  • NONE – ocultar notificaciones en primer plano

Cualquier valor distinto de NONE, incluido BANNER, funciona igual que ALERT.

ANDROID_FOREGROUND_PUSH

  • true – mostrar notificaciones en primer plano (predeterminado)
  • false – ocultar notificaciones en primer plano

Ejemplo que oculta las notificaciones en primer plano en ambas plataformas:

cordova plugin add pushwoosh-cordova-plugin --variable IOS_FOREGROUND_ALERT_TYPE="NONE" --variable ANDROID_FOREGROUND_PUSH="false"

Para activar o desactivar las notificaciones en primer plano en tiempo de ejecución, llame a setShowPushnotificationAlert(show) en el objeto pushwoosh. Pase true para mostrar las notificaciones en primer plano y false para ocultarlas. En iOS, llámelo después de registerDevice.

Cuando ANDROID_FOREGROUND_PUSH es true, setShowPushnotificationAlert(false) no oculta las notificaciones en primer plano en Android. Para controlarlas en tiempo de ejecución en Android, instale el plugin con ANDROID_FOREGROUND_PUSH="false".

El plugin escribe ANDROID_FOREGROUND_PUSH en la clave com.pushwoosh.foreground_push de AndroidManifest.xml. En una aplicación Cordova, true en esta clave muestra las notificaciones en primer plano. En el SDK nativo de Android, la misma clave tiene el significado opuesto: true oculta las notificaciones en primer plano.

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.