2015-08-25 3 views
3

Я использую GCM для отправки уведомлений обоим устройствам Android и IOS.GCM не отправляет уведомление при закрытии приложения ios

В IOS уведомления принимаются, когда приложение активно или работает в фоновом режиме.

Однако, когда приложение не работает, уведомление не получено. Я протестировал, связавшись напрямую с APNS, и сообщение получено. Так что конфигурация на устройстве кажется ОК.

Вот пример сообщения, посланного на ГКМ:

{"notification":{ 
    "badge":"4", 
    "body":"Test body", 
    "sound":"default", 
    "title":"Test title" 
}, 
"collapse_key": "collapse_1", 
"message_id": "1000003", 
"content_available":true, 
"to": "GCM TOKEN FOR DEVICE" 
} 

Это сообщение получено правильно, когда приложение находится в фоновом режиме, но не тогда, когда приложение выключен.

Я послал воображаемое сообщение, которое должно быть отправлено в APNS, непосредственно APNS:

{"aps":{"alert":{"title":"Title","body":"Body"},"badge":5, 
"sound":"default", "content-available":1}} 

И устройство получает это уведомление.

Что мне не хватает? Существует ли конкретная конфигурация для уполномоченного GCM для отправки в APNS?

Большое спасибо, потому что я застрял.

Майкл

+2

Возможный дубликат [поддержки GCM для применения Иос, когда приложение в фоновом режиме или убит] (HTTP: // StackOverflow.ком/вопросы/30883607/гсм-поддержка-на-КСН-приложения, когда-приложение в фоне или убитые). – Mogsdad

ответ

0

Если приложение IOS убит из переключателе пользователем, он не будет получать уведомления толчка. Это OS-вещь, которую Apple намеренно реализовала, поэтому нет работы.

Более подробную информацию можно найти здесь (Войти требуется): https://devforums.apple.com/message/873265#873265

+0

Я попробовал также этот прецедент. Даже если приложение было убито вручную, уведомление отображается с использованием APNS напрямую. Это выглядит не в случае с IOS 8. Я думаю, что он больше связан с GCM <-> APNS (поскольку уведомление получено при обходе GCM). –

1

переднего плана толкает (то есть те, которые предназначены для пользователя) всегда отображаются. Фоновые нажатия (т. Е. Предназначенные для приложения) не отправляются в приложение, если приложение было убито. Ваша полезная нагрузка push не знает, что это такое - ее смесь, у нее есть тело/название/звук, который будет иметь предел переднего плана, но он также имеет доступный контент, который предназначен для фоновых нажатий.

Решите, должен ли ваш толчок быть передним или фоновым нажатием, а затем соответствующим образом вырезать ненужные части из вашей полезной нагрузки.

Также, начиная с iOS 8.1 (или 8.2, я забыл, что), фоновые нажатия будут только мгновенно доставлены в приложение, если приложение находится на переднем плане или если его в фоновом режиме и устройство заряжается (обратите внимание, что это включая соединение с mac через usb). Если приложение находится в фоновом режиме и оно не заряжается, это может занять несколько часов, чтобы нажать, чтобы доставить приложение.

0

Мы столкнулись с этой проблемой при попытке отправить сообщения в тему GCM, все устройства Android получают сообщение правильно, но не ios, где приложение убито. Решена проблема с отправкой сообщения как в данных и уведомление объектов. Не забудьте поставить приоритет на высокий!

Образец Json:

{"to":"/topics/xxx", 
"collapse_key":"", 
"data":{"message":"topic notification"}, 
"notification":{"body":"topicotification"}, 
"time_to_live":3600, 
"content_available":true, 
"priority":"high"} 
Смежные вопросы