Firebase 推送通知自定义声音

Firebase push notifications custom sound

我目前正在开发一个应用程序,我已经在我的应用程序中实现了 firebase 推送通知服务。我在 iphone 上收到通知,但我无法设置我想要的自定义警报声音。

使用 print (userInfo) 我收集了来自 Firebase 的数据

aps: {
alert =     {
    body = MSG;
    title = Title;
};
sound = default;}, {...}, sound: alarm.caf

我知道问题出在哪里,只是不明白如何解决它以便应用程序播放我的自定义通知声音。

经过大量研究,我还没有找到任何解决方案。 在 Firebase Messaging Docs

Table 2a. iOS — keys for notification messages

表明 Firebase 确实允许将声音键包含在有效负载中,但如 didRecieveRemoteNotification

打印的代码所示
aps: {
alert =     {
    body = MSG;
    title = Title;
};
sound = default;}, {...}, sound: alarm.caf

Firebase 不在 aps 中包含声音键,因此应用程序不会调用声音键。

我对我的应用程序使用的解决方法是 Easy APNs Provider,这是一个方便且易于用于开发目的的应用程序,一个主要问题是它没有自动注册和删除通知的能力.

最后:为了向我发布的应用程序推送通知,我选择了一个专用服务器,我 运行 从我的网站

Firebase 的问题是您无法发送 声音参数 就像使用 Firebase 控制台的自定义参数一样,如果您尝试这样做,您将在应用程序之外的应用程序中获得此参数aps字典,虽然声音文件在项目中,但系统不会识别为要播放的声音。

此问题的唯一解决方案是您有一些 API/server,通过它您将收到 Firebase 通知。当服务器向您发送带有声音参数的通知时,它将在 aps 字典中,应用程序将在通知到达时播放此声音。

已经 5 年多了,但如果有人仍在寻找答案,这就是我所做的。

  1. 确保您已配置 Firebase 消息传递和接收通知。

  2. 将 .caf(声音文件)添加到应用程序。它必须在 'Target'->'Build Phases'&然后在'Copy Bundle Resources'

  1. 从设备中删除应用程序(这很重要)

  2. 我使用 Postman 作为我的服务器,所以邮件格式是,

    { 
     "notification": {
     "title": "Hello",
     "sound":"small_message.caf",
     "body": "You have a new Job"
    },
    
    "to": "your device token"
    }