Firebase Cloud Messaging是否支持VOIP pushkit服务?

Has*_*sya 15 push-notification ios firebase google-cloud-messaging pushkit

有没有人对Firebase Cloud Messaging支持VOIP pushkit服务有所了解.

如果是,那么有人可以提供相同的指导.

同样的事情在Skype/Hangout/WhatsApp或任何其他基于VOIP的应用程序中实现.

提前致谢.

Ian*_*ber 13

在撰写本文时(FirebaseMessaging 1.1.0/Firebase 3.2.0),FCM在iOS下使用常规APN,因此不支持PushKit通知.

  • @EdGs,发送voip push和常规推送的PHP脚本没有区别,除了证书是voip推送证书而不是常规证书.但是,无法将Voip证书上传到Firebase - 它会拒绝它.因此无法发送Voip推送. (10认同)
  • 我昨天刚刚向Google询问了有关通过FCM支持VoIP通知的问题,他们告诉我它不受支持,仍然在他们的功能请求列表中没有eta. (9认同)
  • 据我了解,是的,FMC确实可以使用PushKit,因为从服务器实例来看,不需要进行任何更改!它确实通过APN.这是在iOS(不同的回调)中实现的方式,与常规推送通知不同.如果您通过PushKit获取标识符并将其提供给FCM,则它命中的服务和有效负载是相同的.它只是通过不同的回调来到iOS设备.我没有测试过,但我愿意打赌它有效.我没有看到任何推送到PushKit的PHP脚本与只做简单推送通知的脚本有任何区别. (5认同)
  • @EdGs 这不仅仅是客户端上的不同回调。发送到 Apple 服务器的“主题”对于 PushKit 通知是不同的,Firebase 服务器必须知道发送正确的主题。现在有来自 Apple 的通用推送证书,因此您应该能够创建一个支持它的证书,但除非 Firebase 发送正确的主题,否则它将是常规 APN 而不是 PushKit 的。 (2认同)

mar*_*izi 5

这对我有用!不要忘记在您的目录中添加 Authkey_xxxx.p8 文件,并且不要忘记将 .voip 添加到通知主题中的捆绑包 ID。

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!");
    });
});
Run Code Online (Sandbox Code Playgroud)