使用 GCM 的 iOS 自定义推送通知声音
Posted
技术标签:
【中文标题】使用 GCM 的 iOS 自定义推送通知声音【英文标题】:iOS custom push notification sounds using GCM 【发布时间】:2015-11-16 08:32:49 【问题描述】:我正在尝试在我的 ios 应用收到推送通知时播放自定义声音。我在我的服务器上使用 GCM 推送到 android 和 Apple 设备。
默认情况下,我在推送通知负载中发送以下内容: “声音”:“默认”。这没有问题,100%。
一旦我将其更改为:“sound”:“sound.wav”,我就不再在调试器的有效负载中收到“sound”标签,并且当设备接收到有效负载时自然没有声音播放。
显然我已将 sound.wav 添加到我的包中并在包资源中检查了它。
谁能解释一下这个问题?
【问题讨论】:
【参考方案1】:很少有事情会导致这种情况。
-
声音文件“sound.wav”应为第二长且大小有限(以 KB 为单位)。
确保你的有效载荷是这样的:
"title": "Some title", "data": [ "version": "1.0" ], "aps": "badge": 1, "sound": "soundfilenameinbundle.wav", "alert": "Some Alert to Show"
请确保“声音”标签进入“aps”。
如您所说,您已经添加了声音文件,您是否也可以检查它是否已添加到所需的目标中。
有时大型有效负载也会导致此问题。尝试通过删除一些用于测试和检查的数据来减小有效负载大小
正如您所说,您在有效负载中看不到“声音”标签。我怀疑有效载荷本身的问题。可以试试改文件名吗?
还可以在 iOS 7/8/9 上尝试检查问题是否与操作系统无关。
我希望这会有所帮助。
【讨论】:
【参考方案2】:谢谢苏海尔,
问题出在 Google Cloud Messaging 上。它们只支持声音标签的“默认”值。因此,每当我将其更改为 GCM 服务器根本不发送声音标签时。
希望他们尽快修复它...
这里的详细信息: https://developers.google.com/cloud-messaging/http-server-ref
【讨论】:
现在好像支持了developers.google.com/cloud-messaging/…以上是关于使用 GCM 的 iOS 自定义推送通知声音的主要内容,如果未能解决你的问题,请参考以下文章