Старое сообщение не удаляется в уведомлении iPhone попробуйте - PullRequest
0 голосов
/ 18 февраля 2019

Я использую push-плагин в приложении ionic 3, все работает нормально, но с моего сервера мы отправляем по одному сообщению за раз, и я получаю сообщение на iPhone, но старое сообщение должно быть перезаписано новым сообщением или как только мы получим новоесообщение, тогда старое сообщение очищается автоматически .. Я не могу найти ничего, связанного с этим, пожалуйста, кто-нибудь, помогите мне решить эту проблему.

 const options: PushOptions = {
 android: {},
 ios: {
   alert: 'true',
   badge: true,
   sound: 'false'
  },
 windows: {},
 browser: {
     pushServiceURL: 'http://push.api.phonegap.com/v1/push'
  }
};

const pushObject: PushObject = this.push.init(options);


pushObject.on('notification').subscribe((notification: any) => 
console.log('Received a notification', notification));

1 Ответ

0 голосов
/ 19 февраля 2019

Звучит так, как будто вы не отправляете свои сообщения, настроенные на «сворачиваемость».По умолчанию каждое сообщение будет отличаться, не переписывая последнее сообщение.FCM документирует это хорошо:

https://firebase.google.com/docs/cloud-messaging/concept-options

Не складывающиеся и складные сообщения

Не складываемое сообщение обозначает, что каждый отдельныйсообщение доставлено на устройство.Невосстановимое сообщение доставляет некоторый полезный контент, в отличие от разборного сообщения, такого как «пинг» без содержимого для мобильного приложения, чтобы связаться с сервером для получения данных.

...

Складное сообщение - это сообщение, которое может быть заменено новым сообщением, если оно еще не доставлено на устройство.

...

enter image description here

Или, если вы не используете FCM, вот ссылка на документы Apple APN напрямую.

Чтобы разрешить объединение аналогичных уведомлений, выможет включать идентификатор свертывания в запросе на уведомление.Обычно, когда устройство подключено к сети, каждый запрос уведомления, отправляемый в APN, приводит к доставке уведомления на устройство.Однако, когда ключ apns-collapse-id присутствует в заголовке вашего запроса HTTP / 2, APN объединяет запросы, значения которых для этого ключа совпадают.Например, служба новостей, которая отправляет один и тот же заголовок дважды, может использовать одно и то же значение идентификатора свертывания для обоих запросов.APN затем объединили бы два запроса в одно уведомление для доставки на устройство.Подробнее о ключе apns-collapse-id

Обновление с некоторыми деталями кода:

public void sendMessage(String title, String body, Map<String, String> data, boolean shouldCollapse) {          

        PlatformConfiguration platformConfig = new PlatformConfiguration(30);

        if (shouldCollapse)
            messageBuilder.setAndroidConfig(platformConfig.getCollapsibleAndroidConfig("test")).setApnsConfig(platformConfig.getCollapsibleApnsConfig("test"));

...

    public ApnsConfig getCollapsibleApnsConfig(String collapseKey) {

        return getCoreApnsConfig().putHeader("apns-collapse-id", collapseKey)
                .setAps(getNonCollapsibleApsBuilder().setCategory(collapseKey).setThreadId(collapseKey).build()).build();
    }

    public AndroidConfig getCollapsibleAndroidConfig(String collapseKey) {

        return getCoreAndroidConfig().setCollapseKey(collapseKey)
                .setNotification(
                        getNonCollapsibleAndroidNotificationBuilder().setTag(collapseKey).build()).build();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...