Моя проблема в том, что я просто не могу заставить работать тихие уведомления, когда пользователь принудительно завершил (отмахнулся) от приложения!
Полагаю, следующее является фактом: Тихий пуш (с content-available:1
) НЕ вызовет application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
, ни какой-либо другой метод (он НЕ будет запускать приложение), если приложение было принудительно выполненным. выйти (отмахнулся) от пользователя! Кто-нибудь может доказать это неправильно?
Я убедился, что я включил Фоновый режим: Удаленные уведомления .
Но что, если не тихие уведомления у меня не работают? Мне нужны тихие, мне нужно иметь возможность выполнить некоторые проверки, прежде чем я покажу это! Что делать, если я хочу проверить, вошел ли нужный пользователь в мое приложение после получения уведомления от удаленного сервера? (поскольку я не могу гарантировать, что когда он вышел из системы, он успешно уведомил об этом сервер, поэтому я предполагаю, что сервер не знает наверняка)
Каков был бы правильный подход в моей ситуации?
Есть много вопросов о похожих вещах, но не так много людей, интересно, почему? Я не верю, что у меня такой редкий случай. Может быть, мой основной подход к решению такого рода проблем неверен? На платформе Android это, похоже, не проблема!
Я использую FCM в качестве центрального пункта для отправки уведомлений, поэтому, если вы говорите, что PushKit может решить мои проблемы, очень жаль, что FCM не поддерживает сертификаты VoIP. Но, интересно, может ли PushKit решить эту проблему? Или Apple просто спроектировала это так, что когда пользователь принудительно выходит из приложения, это означает, что это приложение должно полностью закрыться с его способностью выдавать удаленные уведомления?!
Я не считаю это дубликатом Тихое уведомление Firebase не запускает закрытое приложение iOS , потому что здесь я спрашиваю, каково было бы решение, если вы хотите проверить, если пользователь кому адресовано уведомление, соответствует пользователю, вошедшему в приложение? Это может считаться дубликатом, если окажется, что на платформе iOS нет абсолютно никакого решения для этого.