iOS - Как обнаружить удаление

Наше приложение работает на iOS и Android и получает уведомления через Firebase.

Нам нужно иметь возможность немедленно определить, когда пользователь удалил приложение, чтобы мы могли отправлять уведомления другим способом (например, SMS или SMTP).

Это нормально для Android, так как мы можем определить, действителен ли IID приложения с помощью Firebase Admin API, прежде чем отправлять уведомление.

Однако это не работает для уведомлений на iOS. Если пользователь удаляет приложение, Firebase по-прежнему считает, что IID приложения действителен, и перенаправляет уведомление на шлюз APN (очевидно, что на устройстве ничего не появляется, потому что приложение исчезло).

Итак, как сервер может обнаружить, что приложение для iOS установлено?

Спасибо.


person MHugh    schedule 13.03.2019    source источник
comment
В iOS нет способа определить, что приложение было удалено.   -  person Bohdan Savych    schedule 13.03.2019
comment
@БогданСавич Ты уверен? Потому что в документации FCM написано, что If the client app is automatically unregistered, which can happen if the user uninstalls the application. For example, on iOS, if the APNs Feedback Service reported the APNs token as invalid. firebase.google. com/docs/cloud-messaging/   -  person genericUser    schedule 11.05.2021


Ответы (1)


Чтобы ответить на ваш вопрос одним словом: нет. В iOS невозможно обнаружить удаление вашего приложения.

РЕДАКТИРОВАТЬ: В качестве обходного пути вы можете сохранить дату последнего запуска приложения на сервере и когда оно, например. более 30 дней назад вы отмечаете приложение как «вероятно удаленное».

person Victor Pro    schedule 13.03.2019
comment
Таким образом, другой способ поставить эту проблему заключается в том, что я хочу иметь возможность обнаруживать успешную доставку на устройство (успешная здесь включает в себя предположение, что приложение должно быть установлено). Хотя в ответах здесь говорится, что это невозможно, я заметил, что WhatsApp, похоже, может это сделать. Если вы отправляете на платформу, где приложение не установлено, оно будет давать только одну серую галочку. Если приложение установлено, оно показывает две серые галочки. Любые предложения о том, как обнаружить установку приложения, подобную этой? - person MHugh; 14.03.2019
comment
@MHugh WhatsApp также не определяет, установлено ли приложение у получателя. Он обнаруживает только, когда получатель получает сообщение (путем отправки своего рода подтверждения отправителю). Вы могли бы сделать это, а также. Но вы не можете провести различие между «Пользователь удалил приложение» и «Пользователь в настоящее время не в сети или недоступен». - person Victor Pro; 14.03.2019
comment
Я смотрел на отправку подтверждения обратно на сервер. Это работает нормально, если приложение находится на переднем плане или в фоновом режиме (путем отправки уведомления о данных, которое запускает DidRecieveRemoteNotification в приложении), однако, если приложение не работает, это невозможно сделать, хотя WhatsApp каким-то образом это делает. Любые идеи, как вызвать приложение для обратного вызова с подтверждением, если оно не запущено? Спасибо. - person MHugh; 15.03.2019
comment
@MHugh Может быть, я что-то путаю, но разве это не очень просто? Приложение находится в активном или фоновом режиме, получает сообщение и подтверждает его. Если вы не получили подтверждение, либо приложение было удалено, либо приложение не было открыто при работающем интернет-соединении. - person Victor Pro; 15.03.2019
comment
Например, после загрузки устройства приложение не отображается ни на переднем плане, ни в фоновом режиме. Состояние не работает (приложение не запущено или работало, но было остановлено системой). Другой пример, когда пользователь завершает работу приложения. Это не передний план и не фон. WhatsApp, кажется, может подтвердить доставку, когда он не запущен. Любые идеи о том, как это делается? - person MHugh; 15.03.2019
comment
@MHugh Я понимаю вашу точку зрения, но, к сожалению, я также не могу предложить решение. Возможно, это поможет: stackoverflow.com/questions/40119069/ - person Victor Pro; 15.03.2019