在iOS上启用FCM推送通知的默认声音

3

我正在尝试设置推送通知的默认声音,并需要通过以下消息对象传递。

var message = {
      notification: {
        title: "X",
        body: "X",
        sound: 'default'
      }          
      token: fcmToken
 };

然而,在我的云函数日志中,我仍然收到以下错误:

发送消息时出错:Error: Invalid JSON payload received. Unknown 在'message.notification'处的名称“sound”:找不到字段。

我尝试将声音属性放置在通知对象、apns-payload-aps 对象下,但似乎无法找到有关在 iOS 上激活默认声音的正确语法的文档。

任何帮助都将不胜感激。

2个回答

7
在消息结构中,“声音”不是“通知”对象的有效键。 “声音”是一个平台特定的键,您必须在“android”或“apns”对象下设置它。
{
    notification: {
        title: "X",
        body: "X"
    },
    apns:{
        payload: {
            aps: {
                sound: "default"
            }
        }
    }
    token: fcmToken
}

请查阅此文档以获取更多信息。


我以为我已经尝试过了,但是没有出现错误的是将声音:'default'键值对放置在aps对象下面,负载对象下面,这是apns对象下面。然而 - 在我的iPhone上测试时,声音仍然无法播放...有什么想法吗?@balsick - Chris
@Chris,抱歉啊,我之前发布的结构有误。现在再看看它是否能正常工作了吧 ;) - balsick
1
不用担心,但实际上它必须在“payload”和“apns”对象下的“aps”对象下。您有什么想法,为什么声音仍然没有触发?当我使用启用声音的通知编辑器发送手动消息时,我的设备确实会响铃,因此我不确定是否在xcode中设置了任何错误。 - Chris
@Chris,我也注意到了收到通知时没有默认声音的问题。如果aps对象中没有“sound”参数怎么办?它会停止推送通知的默认声音吗?目前我的推送通知没有播放声音...你认为这是因为没有声音参数吗?“sound”:“default”是强制要求的吗? - shaqir saiyed
1
很抱歉,我找不到任何关于在aps对象中未指定sound键会发生什么的信息。不过看起来如果没有指定,则不会发出声音。这是一个苹果文档链接:https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification#2943363 - balsick

0

对我来说很疯狂,但是在AppDelegate中,窗口变量被删除了,导致了这个问题...

把它添加回去,声音现在可以正常工作了...


你认为声音参数是必须的吗? - shaqir saiyed
如果aps对象中没有“sound”参数怎么办?它会停止推送通知的默认声音吗?目前,我的推送通知没有播放任何声音...你认为这是因为没有声音参数吗? “sound”:“default”是强制要求的吗? - shaqir saiyed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接