Codename One для удаленных уведомлений iOS

Последние две недели мы пытались получить надежное решение, чтобы попытаться синхронизировать данные нашего приложения с сервером в фоновом режиме. Мы пробовали механизм фоновой выборки, но из-за ограничений iOS на время его работы он не является жизнеспособным решением.

iOS предоставляет удаленные уведомления (https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app?language=objc), которые мы хотели бы использовать, поскольку мы можем использовать тот же механизм на Android.

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

Я вижу, что на Android есть подсказка по сборке для android.background_push_handling, которая позволяет отправлять уведомления в приложение, даже если оно находится в фоновом режиме.

Есть ли похожий совет по сборке, который мы можем использовать для iOS?

Если нет, есть ли способ переопределить application: didReceiveRemoteNotification: fetchCompletionHandler: метод, который запускается при получении уведомления, чтобы мы могли переслать его нашему приложению?


person ASD Solutions    schedule 06.10.2020    source источник
comment
Исторически iOS была довольно ограничена для фонового push, но это могло немного измениться. Нам нужно будет это изучить.   -  person Shai Almog    schedule 07.10.2020
comment
Есть ли у вас какие-либо другие предложения, которые мы можем попробовать в настоящее время, поскольку это задерживает несколько наших проектов?   -  person ASD Solutions    schedule 07.10.2020
comment
Оказывается, мы уже поддерживаем режим content-available: 1 на push-сервере и используем его по умолчанию при отправке push-сообщения №2. У нас все еще отсутствует обратный вызов в нашем делегате, поэтому он будет работать, но это должно быть относительно легко исправить. Сообщите о проблеме, и мы постараемся решить ее в течение следующих двух недель: github.com/ codenameone / CodenameOne / issues   -  person Shai Almog    schedule 08.10.2020


Ответы (1)


Для этой цели вы можете использовать беззвучные push-уведомления. Чтобы отправить тихое push-уведомление, вам просто нужно включить "content-available" : 1" в тело уведомления. Подробнее об этом здесь: Apple docs-silent push-уведомления

Вы должны иметь в виду, что это будет работать только тогда, когда ваше приложение находится в фоновом режиме, оно не будет работать, когда приложение будет убито. Когда приложение убито, единственным решением являются стандартные push-уведомления, если ваше приложение не имеет функции VoIP, и в этом случае вам разрешено использовать инфраструктуру PushKit (если вы используете ее в приложении без функции VoIP, вы не получите доступ к AppStore. ).

person andrija    schedule 06.10.2020
comment
Благодарю за информацию. Мы используем стороннюю библиотеку Java под названием Codename One для разработки нашего приложения, поэтому мы немного абстрагируемся от основных функций iOS. - person ASD Solutions; 07.10.2020