2

Я работаю над получением фоновых уведомлений для работы с ios с GCM - уже не работают фоновые уведомления. В фоновом режиме уведомления иногда появляются, а иногда нет. Я использовал content_available = true; Я тоже получил регистрационный токен.Уведомления IOS GCM push не работают в фоновом режиме

Этот код функциональный

$fields = array(
    'registration_ids' => $devices, 
    'content_available' => true , 
    'notification' => array("title" => "title", "body"=>"body"), 
    'data' => array("message"=>"hi") 
); 

но не получить уведомления в фоновом режиме. не могли бы вы рассказать мне точную причину, почему GCM не работает в Ios, когда приложение в фоновом режиме ???

+0

Вы пытались выполнить запрос отправки HTTP-сообщений через почтовый менеджер или завиток? Вы можете сослаться на [этот ответ StackOverflow] (http://stackoverflow.com/a/32147010/4195406) ​​для получения дополнительной информации. – ztan

+0

От php до IOS? Я думаю, что проблема на стороне IOS, ваш запрос отправки выглядит нормально. Возможно, поймайте результат и посмотрите, действительно ли он преуспевает или дает ошибку. Не уверен, что вам нужен content_available, я просто тестировал его, и мой экран загорается с уведомлением. – CularBytes

+0

Итак, ваше приложение iOS может успешно получать push-уведомление сейчас? Даже ваше приложение находится в фоновом режиме? – ztan

ответ

0

Я решил проблему !!!!!!!! в вашем PHP-коде вам не нужно включать «registration_ids» для отправки нисходящего сообщения, «registration_ids» используется для создания группы устройств для нескольких токенов регистрации, а не для отправки нисходящего сообщения в ваше приложение.

Помимо отправки нижестоящего сообщения с вашего PHP сервера, вы можете попробовать использовать локон, чтобы отправить уведомление толчок в терминале (Вы также должны убедиться, что ваше приложение в фоновом режиме, но не прекращается):

curl -i -H «Content-Type: application/json» -H «Авторизация: ключ = API_KEY» -X POST -d '{"to": "REGISTRATION_TOKEN", "notificaiton": {"sound": "по умолчанию", "знак": "1", "название": "по умолчанию", "тело": "тест"}, "content_available": истинно}» https://android.googleapis.com/gcm/send

if you are testing in development mode for ios: 

_registrationOptions = @ {kGGLInstanceIDRegisterAPNSOption: deviceToken, kGGLInstanceIDAPNSServerTypeSandboxOption: @YES};

с этим кодом в ios и php вы также можете получить уведомление в фоновом режиме.

0

У меня была схожая проблема, и я обнаружил, что установка ключа приоритета решает проблему с APN и сразу же нажимает сообщения.

Установите ключевой приоритет в вашей полезной нагрузки согласно документации здесь: https://developers.google.com/cloud-messaging/concept-options#setting-the-priority-of-a-message

Здесь Вы больше информации о приоритетах компании Apple APNs и его поведение здесь: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html

Так получить Тяни сразу попробовать это Пример полезной нагрузки:

{ 
    "to": "gcm_device_token", 
    "priority": "high", 
    "content_available": false, 
    "notification": { 
    "sound": "default", 
    "badge": "1", 
    "title": "Push Title", 
    "body": "Push Body" 
    } 
}