Как воспроизвести настраиваемый звук в iOS 10, когда приложение находится в фоновом режиме

Я разрабатываю приложение для iOS, которое должно воспроизводить настраиваемый звук, чтобы уведомить пользователя о том, что он получил деньги при получении удаленного уведомления, я видел, как некоторые приложения сделали это, но я не знаю, как реализовать эту функцию.

Приложение, которое, как я знаю, сделало это, находится в iOS 10 и более поздних версиях. Это новая функция в iOS 10? Какой системный фреймворк мне следует изучить? Это потому что Notification Extension? Некоторое время я гуглил и обнаружил, что Notification Extension может настроить пользовательский интерфейс, который мне не нужен. Теперь я действительно в беде и не знаю, что делать. Любая помощь будет оценена!

То, что я получаю от удаленного уведомления, — это просто текст, и он меняется каждый раз, мне нужно преобразовать его в звук, а затем воспроизвести, поэтому в моем проекте нет звукового файла.


person Jeremy    schedule 28.09.2017    source источник
comment
Все, что вам нужно сделать, это включить звуковой файл в свой пакет и указать его в ключе sound вашего push-уведомления.   -  person Paulw11    schedule 28.09.2017
comment
Уведомление каждый раз будет присылать мне другой текстовый номер, я должен отформатировать его и преобразовать в звук, поэтому звукового файла нет, а есть какой-то код преобразования.   -  person Jeremy    schedule 28.09.2017
comment
Затем вам нужно реализовать расширение уведомления и изменить свойство sound получаемого вами уведомления.   -  person Paulw11    schedule 28.09.2017
comment
Спасибо, тогда пойду изучать расширение уведомлений.   -  person Jeremy    schedule 28.09.2017


Ответы (1)


Вы можете ознакомиться с документацией Apple.

Чтобы воспроизвести пользовательский звук, вы должны определить имя пользовательского звука в полезной нагрузке уведомления.

{
    aps =     
    {
        alert = "Notification message";
        sound = "customSound.caf";
    };
}

Также вы должны сохранить этот пользовательский звук в проекте.

Дополнительную информацию смотрите здесь

person vitaliy.pavlyuk.dev    schedule 28.09.2017
comment
Обязательно ли иметь аудиопрофиль? Мне нужно преобразовать текст в звук в методе application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler, который не будет работать, если приложение было убито. - person Jeremy; 28.09.2017
comment
Необходимо иметь аудиопрофиль. Также на основе документации Apple application didReceiveRemoteNotification: будет задействован когда оба условия выполнено: 1) Удаленное уведомление настроено на отображение предупреждения. 2) Словарь aps удаленного уведомления включает ключ изменяемого содержимого со значением, равным 1. - person vitaliy.pavlyuk.dev; 28.09.2017