APN 自定义通知声音问题

Posted

技术标签:

【中文标题】APN 自定义通知声音问题【英文标题】:APN custom notification sound issue 【发布时间】:2012-11-12 10:20:11 【问题描述】:

我已设置远程通知并且工作正常。但是,我必须在收到通知时播放自定义声音(当应用程序不在前台时)。我在我的应用程序包中添加了一个名为 customSound.wav 的文件,并确保在将其拖放到我的项目中时选择了“添加到目标”(这是正确的方法吗?)。服务器端:同名文件已被指定为“sound”:“customSound.wav”。在我的 didReceiveRemoteNotification 中,我正在打印 userInfo 字典,它的出现是这样的:

aps =     

    alert = "Good Evening Sir";
    badge = 1;
    "custom_filed1" = 1;
    "custom_field2" = "AAA-BBB-CCC";
    name = "Sir Hubert";
    sound = default;
;

如您所见,声音仍然是“默认”。我知道如果找不到指定的声音,则播放默认声音 - 字典中的声音值是否也是“默认”,或者应该是有效载荷 json 中指定的文件名。这些在有效载荷中指定的顺序是否重要。我已经尝试过其他线程的建议,但对我不起作用。我无法显示 json,因为我目前无法访问系统。关于我可能做错了什么的任何建议?

【问题讨论】:

FWIW 除 default 以外的任何声音(系统声音或您自己制作的声音)都被视为自定义声音,必须手动添加到 AppBundle。 【参考方案1】:

您的声音键不应该有您要播放的声音文件名。


  aps =
  
    alert = "message";
    sound = "sound file name.extension";
    badge = 1;
  ;

例如: ap = 警报 = "消息"; 声音=“tone.caf”; ;

我正在使用它并在我的通知中获得成功的自定义警报; 尽量缩短声音持续时间。我使用了这种文件格式:aiff, caf

如果你想测试通知,那么你可以试试这个应用程序https://itunes.apple.com/us/app/easy-apns-provider-push-notification/id989622350?mt=12

我没有对这个应用做任何标记,但它对测试推送通知很有用

【讨论】:

我的意思是,如果系统无法播放指定的声音(假设它找不到文件),键“声音”的值是否会自动更改为“默认”或者它应该在 userInfo 字典中仍然保留“customSound.wav”,无论播放是否有问题。 我将自定义声音添加到项目中的方式是否正确? 是的,你添加的东西是正确的,但是声音键应该有你的自定义声音值,否则它将默认并播放它 mmhh,我现在假设它是服务器端问题。将检查和更新。 如果我需要使用本地设置播放文件怎么办。我不需要在 aps 中指定它。因此,例如,我的用户选择了通知所需的声音,然后当通知到来时,应用程序将根据本地设置(保存在 NSUserDefault 中的应用程序设置)播放声音。那么代码应该怎么看呢?

以上是关于APN 自定义通知声音问题的主要内容,如果未能解决你的问题,请参考以下文章

手机进入睡眠状态时不播放自定义通知声音

如何使用 FCM 在 ios 推送通知中播放自定义通知声音

使用 Cloud Functions 播放自定义通知声音 - iOS

自定义通知声音在 Android Oreo 中不起作用

当应用程序处于后台时,Flutter Cloud Messaging 自定义通知声音不起作用

Monaca:使用 Onesignal 在 Android 中自定义通知声音和小图标