У меня есть приложение для iPhone, над которым я работаю, которое использует Push-уведомления.
В полезной нагрузке я указываю несколько вещей:
- тело сообщения
- звук
- action-loc-key, потому что я не хочу, чтобы пользователь мог запускать приложение из уведомления
Уведомление попадает на мой iPhone просто отлично. Это показывает сообщение без кнопок. Так что body и action-loc-key работают просто отлично. Но он не играет ни звука.
Однако при устранении неполадок я заметил несколько вещей:
- если я реализую приложение: didReceiveRemoteNotification, все выглядит нормально. Аргумент Dictionary содержит ключ для звука, значение которого действительно является именем файла, который я хочу воспроизвести.
- Сам звуковой файл «работает», потому что, если я проигрываю его внутри приложения (используя класс SoundEffect из образца BubbleLevel), он работает просто отлично.
Несмотря на эти два факта, звуковой эффект просто не воспроизводится.
В приложении настроек все выглядит правильно - для моего приложения включена функция Push, и у меня также включены и «звуки», и «оповещения».
Центр документации iPhone предлагает использовать Quicktime для просмотра формата файла. Вот как это выглядит.
Наконец, если я посмотрю информацию об этом файле в XCode, то там будет сказано, что тип файла - это просто файл по умолчанию, «файл». Из того, что я мог сказать, в списке нет аудио-кафе. Я попробовал аудио-WAV (звукорежиссер сказал мне, что оригинальные файлы были WAV), но это ничего не изменило.
Кроме того, код:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// view controller set up stuff
// ...
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
}