Тихие уведомления в фоновом режиме в приложениях принудительного выхода - PullRequest
0 голосов
/ 04 апреля 2019

Моя проблема в том, что я просто не могу заставить работать тихие уведомления, когда пользователь принудительно завершил (отмахнулся) от приложения!

Полагаю, следующее является фактом: Тихий пуш (с content-available:1) НЕ вызовет application(_:didReceiveRemoteNotification:fetchCompletionHandler:), ни какой-либо другой метод (он НЕ будет запускать приложение), если приложение было принудительно выполненным. выйти (отмахнулся) от пользователя! Кто-нибудь может доказать это неправильно?

Я убедился, что я включил Фоновый режим: Удаленные уведомления .

Но что, если не тихие уведомления у меня не работают? Мне нужны тихие, мне нужно иметь возможность выполнить некоторые проверки, прежде чем я покажу это! Что делать, если я хочу проверить, вошел ли нужный пользователь в мое приложение после получения уведомления от удаленного сервера? (поскольку я не могу гарантировать, что когда он вышел из системы, он успешно уведомил об этом сервер, поэтому я предполагаю, что сервер не знает наверняка)

Каков был бы правильный подход в моей ситуации?

Есть много вопросов о похожих вещах, но не так много людей, интересно, почему? Я не верю, что у меня такой редкий случай. Может быть, мой основной подход к решению такого рода проблем неверен? На платформе Android это, похоже, не проблема!

Я использую FCM в качестве центрального пункта для отправки уведомлений, поэтому, если вы говорите, что PushKit может решить мои проблемы, очень жаль, что FCM не поддерживает сертификаты VoIP. Но, интересно, может ли PushKit решить эту проблему? Или Apple просто спроектировала это так, что когда пользователь принудительно выходит из приложения, это означает, что это приложение должно полностью закрыться с его способностью выдавать удаленные уведомления?!

Я не считаю это дубликатом Тихое уведомление Firebase не запускает закрытое приложение iOS , потому что здесь я спрашиваю, каково было бы решение, если вы хотите проверить, если пользователь кому адресовано уведомление, соответствует пользователю, вошедшему в приложение? Это может считаться дубликатом, если окажется, что на платформе iOS нет абсолютно никакого решения для этого.

Ответы [ 2 ]

4 голосов
/ 04 апреля 2019

Вы спрашиваете:

Или [Apple] просто спроектировал это так, что когда пользователь принудительно выходит из приложения, это означает, что это приложение должно полностью закрыться с его способностью выдавать удаленные уведомления?

Да, так оно и задумано. Руководство по программированию приложений для iOS: понимание, когда ваше приложение запускается в фоновом режиме говорит:

В большинстве случаев система не перезапускает приложения после их принудительного выхода пользователем. Единственным исключением являются приложения определения местоположения, которые в iOS 8 и более поздних версиях перезапускаются после принудительного выхода пользователем. Однако в других случаях пользователь должен явно запустить приложение или перезагрузить устройство, прежде чем система сможет автоматически запустить приложение в фоновом режиме. Если на устройстве включена защита паролем, система не запускает приложение в фоновом режиме, пока пользователь впервые не разблокирует устройство.

0 голосов
/ 04 апреля 2019

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

Upd:

Когда устройство iOS получает молчаливое уведомление, система будит ваше приложение в фоновом режиме и вызывает приложение (_: didReceiveRemoteNotification: fetchCompletionHandler :) метод его делегата приложения. Ваше приложение имеет 30 секунд времени настенных часов для выполнения любых задач и вызова предоставленного обработчика завершения. Для получения дополнительной информации см. Обработка уведомлений и связанных с уведомлениями действий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...