Chamadas VoIP com Cordova
O Pushwoosh suporta notificações de chamada no estilo VoIP para iOS e Android usando o pushwoosh-cordova-plugin. Isso ativa a funcionalidade nativa de chamadas VoIP, incluindo a UI de chamada recebida e eventos de controle de chamada.
Antes de começar, integre o plugin com o seu Application Code do Pushwoosh, conforme descrito no guia de integração básica.
1. Adicione o plugin Pushwoosh para Cordova com VoIP ativado
Anchor link toInstale o plugin com a flag VoIP ativada:
cordova plugin add pushwoosh-cordova-plugin --variable PW_VOIP_IOS_ENABLED=true --variable PW_VOIP_ANDROID_ENABLED=trueIsso configurará o plugin para suportar a funcionalidade VoIP no iOS.
2. Verifique a dependência PushwooshVoIP
Anchor link toO plugin vincula o módulo PushwooshVoIP automaticamente. No cordova-ios 8, ele adiciona o pacote Swift PushwooshVoIP e não altera o Podfile. Em versões anteriores do cordova-ios, ele adiciona esta linha ao seu Podfile:
pod 'PushwooshXCFramework/PushwooshVoIP'Este módulo é necessário para suportar notificações VoIP baseadas em PushKit e o tratamento de chamadas em nível de sistema.
3. Ative o modo de segundo plano VoIP no Xcode
Anchor link toAbra seu projeto no Xcode e siga estes passos:
- Vá para Signing & Capabilities.
- Adicione a capacidade Background Modes.
- Marque a opção Voice over IP.
Isso permite que seu aplicativo receba pushes VoIP recebidos enquanto estiver em segundo plano.
4. Solicite permissão de chamada no Android
Anchor link toNo Android, o aplicativo precisa da permissão do usuário para receber chamadas. Solicite-a com requestCallPermission(). Se o usuário negar, o aplicativo ignora as chamadas VoIP recebidas.
pushwoosh.requestCallPermission();5. Defina um toque personalizado (opcional)
Anchor link toO plugin inicializa o VoIP automaticamente. Para tocar um toque personalizado nas chamadas recebidas, passe o nome de um arquivo de som do bundle do aplicativo:
pushwoosh.setRingtone("incoming.caf");6. Callbacks e métodos VoIP disponíveis
Anchor link toO suporte a vídeo e o formato do identificador de chamada são definidos por chamada no payload do push VoIP: video e, no iOS, handleType (1 para genérico, 2 para número de telefone, 3 para e-mail).
O plugin Cordova suporta os seguintes métodos e eventos relacionados a VoIP:
answer– chamado quando um usuário atende uma chamada recebidaendCall– chamado quando um usuário encerra a chamada atualhangup– chamado quando uma chamada é desligadareject– chamado quando uma chamada recebida é rejeitadamuted– alterna o status de mudo, apenas para iOSheld– alterna o status de espera, apenas para iOSvoipPushPayload– retorna o payload do push para a chamada VoIP recebidaincomingCallSuccess– chamado quando a UI de chamada do sistema é exibida com sucesso, apenas para iOSincomingCallFailure– chamado quando a UI de chamada do sistema falha ao ser exibida, apenas para iOSspeakerOn– liga o viva-vozspeakerOff– desliga o viva-vozplayDTMF– toca o tom DTMF durante uma chamada, apenas para iOSvoipDidRegisterTokenSuccessfully– chamado quando o token VoIP é registrado no Pushwoosh, apenas para iOSvoipDidFailToRegisterTokenWithError– chamado quando o registro do token VoIP falha, apenas para iOSvoipDidCancelCall– chamado quando uma chamada é cancelada remotamente por meio de um push VoIPvoipDidFailToCancelCall– chamado quando uma tentativa de cancelar uma chamada falha
Estes podem ser conectados usando o objeto PushNotification do Cordova, permitindo que você controle e responda às mudanças de estado da chamada VoIP.
No Android, você também pode tratar esses eventos em sua própria classe Java nativa, por exemplo, para abrir sua própria tela de chamada quando o usuário atender. Consulte Manipulador personalizado de eventos de chamada no Android.