我正在开发一个使用推送通知的 iPhone 应用程序。

在有效负载中,我指定了一些内容:

  • 邮件正文
  • 声音
  • action-loc-key 因为我不希望用户能够从通知启动应用程序

通知发送到我的 iPhone 上一切正常。它显示一条没有按钮的消息。所以 body 和 action-loc-key 工作得很好。但是,它没有播放任何声音。

但是,在故障排除过程中我注意到以下几点:

  1. 如果我实现 application:didReceiveRemoteNotification,一切看起来都很好。Dictionary 参数包含一个声音键,其值确实是我要播放的文件的名称。
  2. 声音文件本身“有效”,因为如果我在应用程序内部播放它(使用 BubbleLevel 示例中的 SoundEffect 类),它就可以正常工作。

尽管有这两个事实,声音效果根本就没有播放。

在设置应用程序中,一切看起来都正确 - 我的应用程序已打开推送,并且我也将“声音”和“警报”设置为打开。

iPhone文档中心建议使用Quicktime来查看文件的格式。这就是它的样子。

alt text

最后,如果我在Xcode中查看此文件的信息,则说该文件类型只是默认的“文件”。据我所知,列表中没有音频-CAF选项。我尝试了音频 WAV(音响工程师告诉我原始文件是 WAV),但这并没有改变任何东西。

另外,代码:

- (void)applicationDidFinishLaunching:(UIApplication *)application {

// view controller set up stuff
    // ...

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];

}

有帮助吗?

解决方案

我应该也发布 JSON,但事实证明我构造错误。它在 didReceieveRemote 通知中起作用的原因是 b/c 我自己解析 JSON,而我的东西乱序这一事实并不重要。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top