У меня есть дизайн системы, который состоит из обычной веб-службы и среды обмена мгновенными сообщениями, которая включает среду мгновенных сообщений Mongoose.
По сути, это обычное приложение, включающее функцию чата, например, WhatsApp. В основном система, как показано ниже;
Сторона A
Обычные экземпляры веб-службы (эта среда отправляет push
уведомления через Firebase Cloud Messaging)
Сторона B
Среда Mongoose IM (Эта среда знает, когда отправлять push-уведомления в APNS
Сторона C
клиенты iOS + Android
A - SDK -> C
B - SDK -> C
Сторона предоставляет SDK стороне C и предоставляет метод, который возвращает количество непрочитанных сообщений и количество непрочитанных сообщений для конкретного разговора. Также, когда сообщения были прочитаны, сторона C отправляет необходимую информацию для чтения сообщений, чтобы знать сторону A.
Для этой среды мне интересно, как считать значок значка приложения. Я думаю, что в середине есть веб-сервис для обслуживания прочитанных / непрочитанных сообщений. Если сторона A или сторона B хотят отправить уведомление, они должны попросить службу промежуточного программного обеспечения узнать количество последних значков уведомлений. И наоборот, если клиент читает кучу уведомлений, ему необходимо обновить службу промежуточного программного обеспечения.
Как альтернатива
Я могу использовать служебные расширения для пропуска, но в расширениях нет никакого способа получить доступ к экземпляру UIApplication, чтобы получить текущий счетчик уведомлений. Поэтому необходимо хранить количество уведомлений в UserDefaults. Но этот способ сложнее или не совсем обычный.
Заранее спасибо