Personalizando o plugin Cordova
Notificações push em primeiro plano
Anchor link toAo 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 aplicativoALERT– notificação de alerta
ANDROID_FOREGROUND_PUSH
true– não lida automaticamente com pushes em primeiro planofalse– 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 toPara 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 toO í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 toDados 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 toPara 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 SDKERROR– exibe apenas erros no consoleWARNING– mostra avisosINFO– mostra mensagens informativasDEBUG– 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 toRecomendamos 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 toVocê 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 toSe 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 toSeu 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.