我有一个Windows服务,它将使用Apple的推送通知服务将通知发送到我们的iOS应用程序。 我们使用自定义通知声音,当通知出现在设备上时正在播放。 上周iOS 10.3.3更新发布后,我们发现自定义声音不再播放。 这是我们发送给 APS 的消息:
{
{
"aps": {
{
"alert": "Alert message",
"badge": 5,
"sound": "mysound.mp3"
}
},
"acme1": "bar",
"acme2": 42
}
}
我们的应用程序没有改变,即使在尚未更新到 iOS 10.3.3 的设备上,自定义声音也不再播放,包括无法更新到 iOS 9 以上的设备。
我不确定是否应该开始诊断问题;移动应用程序是使用Cordova构建的。
我很惊讶它曾经适用于 mp3 文件类型。
根据文档:
您可以将音频数据打包到aiff、wav或caf文件中。由于自定义声音由系统声音设施播放,因此必须采用以下音频数据格式之一:
- 线性
- 相控处理器
- MA4 (IMA/ADPCM(
- 微法
- 阿罗
尝试将其转换为支持的格式和包之一,它应该会再次开始工作。 有关如何执行此操作的详细信息,请参阅文档。
iOS 通知自定义声音有效(当应用程序处于前台、后台和终止时(
本地和远程通知可以指定在传递通知时要播放的自定义警报声音。您可以将音频数据打包到 aiff、wav 或 caf 文件中。由于自定义声音由系统声音设施播放,因此必须采用以下音频数据格式之一:
- 线性相变材料
- MA4 (IMA/ADPCM(
- 微法
- 阿罗
注意:-播放时自定义声音必须在30 秒以内。如果自定义声音超过该限制,则改为播放默认系统声音。
- 将文件添加到 Xcode 项目根目录。 将文件添加到 Xcode
- 确保在添加文件时选择了"添加到目标",以便它们自动添加到捆绑资源 将文件添加到复制捆绑包资源
之后,您需要在应用程序有效负载中设置自定义声音名称:-
payload
{
aps = {
alert = "Hello World";
badge = 1;
sound = "iosTune.aiff"; // default;
};
}
最终:-当在应用程序的任何阶段收到通知时,将播放自定义声音而不是默认声音。