带有自定义声音的推送通知未在 iOS 中显示

Posted

技术标签:

【中文标题】带有自定义声音的推送通知未在 iOS 中显示【英文标题】:Push notifications with custom sounds not showing up in iOS 【发布时间】:2019-09-14 08:19:28 【问题描述】:

使用 firebase 云功能完成的自定义推送通知在 android 上完美运行,但在 ios 上不适用。

我已尝试将自定义声音放在 Runner 文件夹中,如在线多个教程中所见。它是一个 .wav 文件。

我的云功能负载设置如下:

var payload = 
            "notification": 
                "title": msgData.name +" Needs Your Help!",
                "body": "new Alert Message: "+msgData.job_type,
                "sound": "submarine.wav"
            ,

在 android 上通知有效,但在 ios 上它甚至不显示通知。如果它把声音设为默认,它可以工作,但它根本不播放自定义的 subsub.wav 文件

【问题讨论】:

您是否已将声音文件导入您的项目,确保它包含在捆绑包中并将其链接到正确的目标? @BrandonStillitano 我已经完成了所有这些,但仍然无法正常工作。有没有其他方法可以做到这一点? 我什至将文件转换为 .CAF 。我对此没有其他解决方案... 【参考方案1】:

为 iOS 和 Android 配置消息时,您还必须设置应用程序设置。请参阅下面的指南。

https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages?authuser=0#ApnsConfig

payload = 
    notification:
        title: 'Notification title goes here',
        body: 'Body of notification goes here',
    ,
    android: 
    ,
    apns: 
        headers:
            "apns-collapse-id": "id_here",
            "content-available": "1",
            "apns-priority": "10",
        ,
        payload:
            aps:
                sound: 'default'
            
        
    ,
    data:
        type: 'type'
    

【讨论】:

我会试试这个,但它怎么能与默认声音完美配合呢?另外,apns-collapse-id 是应用 ID 吗? 我找到了解决方案!一些我忘记检查权限的方式:_messaging.requestNotificationPermissions() @SkyentGroup 不,它是将消息分组在一起的 Id。如果通知来自同一消息线程等,则很有用 此解决方案不适用于云功能。这是他们显示的错误:Error: Messaging payload contains an invalid "apns" property. Valid properties are "data" and "notification".

以上是关于带有自定义声音的推送通知未在 iOS 中显示的主要内容,如果未能解决你的问题,请参考以下文章

IOS推送通知自定义声音不起作用

使用 GCM 的 iOS 自定义推送通知声音

iPhone推送通知声音,“语音通知”

iOS推送通知自定义声音

Android推送通知的自定义声音不起作用(FCM)

自定义声音不播放推送通知