iOS Push Notification Нет звука

Это код для регистрации на push

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
    [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
    [application registerForRemoteNotifications];
}
else
{
    [application registerForRemoteNotificationTypes: (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
}

Он отлично работает, так как приложение регистрируется на сервере.

Файлы PEM также сделаны правильно, так как я могу отправить push-сообщение на свое устройство с помощью APNS-среды для песочницы.

Когда я печатаю свою полезную нагрузку JSON из didReceiveRemoteNotification я получаю это:

{
    aps =     {
        alert = "Test Push Message";
    };
}

Проблема в том, что когда я получаю сигнал (даже если устройство установлено на громкий звук), он не воспроизводит звук.

Насколько мне известно, если вы не укажете звук в полезной нагрузке JSON, он должен воспроизводить звук ОС по умолчанию.

В настройках уведомлений моего приложения на телефоне звук включен по умолчанию, потому что при регистрации я указываю UIUserNotificationTypeSound.

Кто-нибудь еще сталкивался с этой проблемой?

Ответ 1

В соответствии с документацией Apple вам нужно указать default, если вы хотите использовать стандартное push-уведомление для воспроизведения:

Название звукового файла в комплекте приложения. Звук в этом файле играл как предупреждение. Если звуковой файл не существует или используется по умолчанию в качестве значения воспроизводится звук предупреждения по умолчанию. Звук должны быть в одном из форматов аудиоданных, совместимых с системные звуки; Подробнее см. в разделе Подготовка настраиваемых звуков оповещения.

Конечный вывод JSON:

{
    "aps" :     {
        "alert" : "Test Push Message",
        "sound" : "default"
    };
}

Ответ 2

Вы должны изменить выход сервера JSON на это. default это звуковой тип уведомления на вашем телефоне.

{
    "aps": {
        "alert": "test",
        "sound": "default"
    }
}

Ответ 3

для воспроизведения звука, когда наше приложение получает push-уведомление, ваш json должен содержать звуковой атрибут. поэтому json вот так

{
    "aps":{
    "alert" :"your test message",
    "sound":"default"
        };
}