我正在开发一个使用推送通知的 iPhone 应用程序。
在有效载荷中,我指定了一些内容:
- 邮件正文
- 声音
- action-loc-key 因为我不希望用户能够从通知中启动应用程序
通知可以很好地到达我的 iPhone。它显示一条没有按钮的消息。所以 body 和 action-loc-key 工作得很好。但是,它没有播放任何声音。
但是,在故障排除过程中,我注意到了几件事:
- 如果我实现 application:didReceiveRemoteNotification,一切看起来都很好。Dictionary 参数包含一个声音键,其值确实是我要播放的文件的名称。
- 声音文件本身“有效”,因为如果我在应用程序内部播放它(使用 BubbleLevel 示例中的 SoundEffect 类),它就可以正常工作。
尽管有这两个事实,但声音效果根本没有播放。
在设置应用程序中,一切看起来都正确 - 我的应用程序打开了推送,我也将“声音”和“警报”设置为打开。
iPhone 文档中心建议使用 Quicktime 查看文件的格式。这就是它的样子。
最后,如果我在 XCode 中查看此文件的信息,它会说文件类型只是默认的“文件”。据我所知,列表中没有 audio-caf 选项。我尝试了audio-WAV(音响工程师告诉我原始文件是WAV),但这并没有改变任何东西。
另外,代码:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// view controller set up stuff
// ...
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
}