更改推送通知声音
如何使用自定义声音进行推送通知?
根据我的研究和阅读,我发现有效载荷应该具有应用程序包中或应用程序数据容器的Library / Sounds文件夹中的文件名。
如何把文件放在那里?
按照Apple文档为您的应用程序准备自定义声音文件。
对于iOS中的远程通知,您可以指定iOS在播放应用程序的本地或远程通知时播放的自定义声音。 声音文件可以位于客户端应用程序的主包中,也可以位于应用程序数据容器的Library / Sounds文件夹中。
自定义提醒声音由iOS系统声音设备播放,因此必须采用以下audio数据格式之一:
线性PCM MA4(IMA / ADPCM)μLawaLaw您可以将audio数据打包成aiff,wav或caf文件。 然后,在Xcode中,将声音文件作为应用程序包的非本地化资源或数据容器的Library / Sounds文件夹添加到项目中。
您可以使用afconvert工具来转换声音。 例如,要将16位线性PCM系统声音Submarine.aiff转换为CAF文件中的IMA4audio,请在Terminal应用程序中使用以下命令:
afconvert /System/Library/Sounds/Submarine.aiff〜/ Desktop / sub.caf -d ima4 -f caff -v您可以通过在QuickTime Player中打开并从Movie中selectShow Movie Inspector来检查声音以确定其数据格式菜单。
自定义声音播放时必须在30秒以内。 如果自定义声音超过该限制,则会播放默认的系统声音。
一旦你创build了这个文件,最简单的方法就是把它放在应用程序包中。
当您发送推送通知时,只需在JSON有效内容中添加文件的名称即可。 例:
{ "aps" : { "alert" : "You got your emails.", "badge" : 9, "sound" : "bingbong.aiff" } }
而已! 你不必在应用代码中做任何特殊的事情。
编辑:
请把文件放入你的项目包(即在项目层次结构内),并在拖放时selectCopy items if needed
。 黑色部分有项目名称。
您的服务器pipe理员将向您发送通知有效负载中的声音名称。 有效载荷将如下所示
{ aps = { alert = "notification message"; sound = "example.caf"; }; }
您需要将声音文件添加到应用程序包。 格式应该是.caf。 要将声音文件转换为.caf,请尝试在terminal中运行此命令。
afconvert -f caff -d aacl@22050 -c 1 sound.aiff soundFileName.caf
文件保存在桌面上。 现在将您的文件拖放到您的项目。 然后在目标中select构build阶段。
检查您的声音文件是否存在“复制束资源”下。 如果没有,点击+button添加你的声音文件。 有效负载中的声音名称应与您的声音文件名相同。
现在你们都可以播放自定义通知声音了。
- GCM下游消息JSON格式的iOS
- 用cocoapods安装SDK之后,没有这样的模块“BMSPush”
- 应用程序:didReceiveRemoteNotification:fetchCompletionHandler:调用时不在UIApplicateStateBackground中
- 如何使用私有框架从iOS上的其他应用程序捕获所有推送通知?
- 如何在iOS中注册GCM
- xcode 8.0“添加Push Notif(..)到您的应用程序ID”警告,而已经添加
- 静默远程通知可能,如果用户已禁用推的应用程序?
- iPhone推送通知字符限制
- Swift:'(NSObject,AnyObject)'没有一个名为'subscript'的成员