Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Cordova plugin firebase

Quando recebo a msg push no meu aplicativo, gostaria de clicar e com isso abrir meu aplicativo na tela e mensagem clicada por exemplo. Já procurei quase em todo o material do firebase e não achei nada, alguém pode me dar uma luz?

3 respostas
solução!

Olá Nilton,

Pode compartilhar o repositório do plugin cordova que você está usando?

Partindo da seguinte documentação [1] um pseudo código seria

  1. No seu código no backend enviar no obejto da chave payload um chave e valor personalizado: {payload: { title: 'Titulo da notificação', chave_personalizada_url: '/produtos'}}
  2. No seu código JS no aplicativo na função anônima que é executada quando chega uma notificação você pega o atributo chave_personalizada_url e usando o seu router do seu projeto rediciona para a tela que foi enviada.

Com o repositório do plugin que está usando e mais informações do seu aplicativo como se está usando um framework posso tentar fazer um exemplo.

Abraço!

[1] https://firebase.google.com/docs/cloud-messaging/http-server-ref?hl=pt-br

Olá boa noite,

Compartilhando meu repositorio onde monto a instrução de envio de push, em c#.

               switch (data.sistemaoperacional_txt.ToLower())
                {
                    case "android":
                        var desc = new DefaultPushNotification
                        {
                            to = data.registration_ids,
                            notification = new DataPushNotification
                            {
                                title = data.title,
                                body = data.message,
                                icon = data.icon,
                                payload = data.payload,
                            }
                        };
                        json = new JavaScriptSerializer().Serialize(desc).Replace("[", "").Replace("]", "");
                        break;
                    case "ios":
                        var ios = new DefaultPushNotification
                        {
                            to = data.registration_ids,
                            notification = new DataPushNotification
                            {
                                title = data.title,
                                body = data.message,
                                style = "inbox",
                                summaryText = "Você tem %n% notificações",
                                badge = data.badge,
                                payload = data.payload,
                                image = "icon",
                                color = "#3b5998",
                                tipo_txt = data.tipo_txt
                            }
                        };
                        json = new JavaScriptSerializer().Serialize(ios).Replace("[", "").Replace("]", "");
                        break;
                }
                break;

No cordova uso o seguinte:

window.FirebasePlugin.getToken(function ($token) { console.log('token: '+ $token) document.getElementById("registration_ids").value = $token; }, function (error) { console.error(error); });

    window.FirebasePlugin.onTokenRefresh(function ($token) {
        document.getElementById("registration_ids").value = $token;
    }, function (error) {
        console.error(error);
    });

    window.FirebasePlugin.onNotificationOpen(function ($notification) {
        var $notif = JSON.stringify($notification);
        // M.toast({ html: $notif });
        navigator.notification.alert(
            $notification.body,  // message
            alertDismissed,  // callback
            $notification.title,              // title
            'Ok'             // buttonName
        );

    }, function (error) {
        console.error(error);
    });

    window.FirebasePlugin.grantPermission();