Pular para o conteúdo

Personalizando o plugin Cordova

Notificações push em primeiro plano

Anchor link to

Ao receber um push em segundo plano, nenhum evento é acionado até que uma notificação push seja clicada. Após ser aberta, o plugin Pushwoosh dispara os eventos push-receive e push-notification.

Quando um push é recebido em primeiro plano, o plugin dispara push-receive automaticamente e cria uma notificação na Central de Notificações. Quando esta notificação é aberta, ele dispara push-notification.

Você pode escutar o evento push-receive para reagir imediatamente a um push caso ele seja recebido em primeiro plano, por exemplo, para atualizar o conteúdo na página atual do seu aplicativo. push-notification, por outro lado, é usado para reagir a um evento de clique na notificação, que requer interação do usuário, por exemplo, para navegar dentro do seu aplicativo, acionar um novo processo no seu aplicativo, etc.

Para alterar a aparência da notificação push em primeiro plano, você pode usar as preferências IOS_FOREGROUND_ALERT_TYPE e ANDROID_FOREGROUND_PUSH:

IOS_FOREGROUND_ALERT_TYPE

  • NONE – não exibe uma notificação quando o aplicativo está em primeiro plano (padrão)
  • BANNER – exibe um alerta de banner no aplicativo
  • ALERT – notificação de alerta

ANDROID_FOREGROUND_PUSH

  • true – não lida automaticamente com pushes em primeiro plano
  • false – lida automaticamente com pushes em primeiro plano (padrão)

Exemplo:

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

Som de push personalizado

Anchor link to

Para habilitar o som de notificação personalizado no Android, coloque os arquivos de som na pasta www/res e especifique cada som no 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>

Os sons estarão acessíveis no menu suspenso Sound do painel Send Push.

No iOS, os arquivos de som ainda não são associados automaticamente à Aplicação Pushwoosh, mas podem ser usados manualmente, por exemplo, www/res/sound_name.wav.

Ícone de push personalizado

Anchor link to

O ícone de notificação push pode ser personalizado no Android localmente usando pw_notification como nome do recurso para tal ícone (veja o exemplo 1 2); ou remotamente, referenciando qualquer nome de recurso na configuração Icon no painel Send Push.

Dados de push personalizados

Anchor link to

Dados de push personalizados podem ser enviados usando a configuração Action no painel Send Push. Para receber e manipular tais dados, use o seguinte 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
}
}
);

Controlando o nível de Log

Anchor link to

Para auxiliar na depuração e integração, o SDK imprimirá todas as solicitações no console por padrão. Quando você estiver pronto para a compilação de produção, defina a variável LOG_LEVEL para um dos seguintes valores:

  • NONE – sem logs do SDK
  • ERROR – exibe apenas erros no console
  • WARNING – mostra avisos
  • INFO – mostra mensagens informativas
  • DEBUG – mostra tudo, incluindo informações de depuração (padrão)

Exemplo:

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

Deep linking

Anchor link to

Recomendamos o uso de https://github.com/EddyVerbruggen/Custom-URL-scheme
É super fácil configurar deep links para o Cordova e funciona com a funcionalidade de deep linking do Pushwoosh de forma nativa.

Você pode encontrar a instalação e o uso neste guia ou na documentação do plugin.

Bridge JS para Rich Media

Anchor link to

Você pode chamar suas funções JS a partir de Rich Media no Cordova WebView através de interfaces javascript.
Uma chamada de um Rich Media deve ter o seguinte formato:

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

Exemplo:

1. Crie um Rich Media com uma chamada javascript:

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

2. Adicione uma interface javascript ao seu projeto:

pushNotification.addJavaScriptInterface('testBridge');

3. Adicione a função:

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

Usando o plugin Pushwoosh com outros serviços FCM

Anchor link to

Se o seu aplicativo usa outros plugins que dependem do firebase-messaging, isso pode resultar em conflitos ou em um dos plugins não funcionar como esperado. Para resolver este conflito, você pode adicionar uma classe FirebaseMessagingService personalizada que irá rotear as notificações push entre os plugins. O plugin Pushwoosh Cordova contém um modelo desta classe que você pode usar como está para forçar todas as notificações a passarem pelos manipuladores do Pushwoosh ou modificá-lo para manipular notificações de outros provedores também. Para habilitar o modelo, descomente as seguintes linhas no plugin.xml do 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>

Compartilhe seu feedback conosco

Anchor link to

Seu feedback nos ajuda a criar uma experiência melhor, então adoraríamos ouvir de você se tiver algum problema durante o processo de integração do SDK. Se você enfrentar alguma dificuldade, por favor, não hesite em compartilhar suas opiniões conosco através deste formulário.