Quelqu'un at-il une idée sur Firebase Cloud Messaging support VOIP pushkit services.
Si oui, quelqu'un peut-il fournir des directives à ce sujet?.
Même chose qui est implémentée dans Skype/Hangout/WhatsApp ou toute autre application basée sur VOIP.
Merci d'avance.
Au moment de la rédaction (FirebaseMessaging 1.1.0/Firebase 3.2.0), FCM utilise des APN normaux sous iOS, il n'y a donc pas de prise en charge des notifications PushKit.
J'ai fait fonctionner PushKit + Firebase via node-apn. Installez-le simplement via npm dans votre dossier de fonctions cloud. Vous pourriez obtenir les jetons de votre magasin de pompiers ou quelque chose comme ça, mais je pense que cela va de soi ...
Voici un code factice:
export const test = functions.https.onRequest((request, response) => {
const config = {
production: false, /* change this when in production */
cert: 'yourCERT.pem',
key: 'yourKey.pem',
};
const apnProvider = new apn.Provider(config);
const notification = new apn.Notification();
const recepients: string[] = [];
recepients.Push(apn.token('SOME PUSHKIT TOKEN'));
recepients.Push(apn.token('ANOTHER PUSHKIT TOKEN'));
notification.topic = 'com.your.app.voip'; // you have to add the .voip here!!
notification.payload = {
// some payload
};
return apnProvider.send(notification, recepients).then((reponse) => {
console.log(reponse);
return response.send("finished!");
});
});
Cela a fonctionné pour moi! N'oubliez pas d'ajouter le fichier Authkey_xxxx.p8 dans votre répertoire et n'oubliez pas d'ajouter .voip à votre ID de bundle dans la rubrique de notification.
export const test = functions.https.onRequest((request, response) => {
const config = {
production: false, /* change this when in production */
token: {
key: "./AuthKey_xxxx.p8",
keyId: "xxxx",
teamId: "yyyy"
}
};
const apnProvider = new apn.Provider(config);
const notification = new apn.Notification();
const recepients: string[] = [];
recepients.Push(apn.token('SOME PUSHKIT TOKEN'));
recepients.Push(apn.token('ANOTHER PUSHKIT TOKEN'));
notification.topic = 'com.your.app.voip'; // you have to add the .voip here!!
notification.payload = {
// some payload
};
return apnProvider.send(notification, recepients).then((reponse) => {
console.log(reponse);
return response.send("finished!");
});
});