我在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));
答案 0 :(得分:0)
听起来您没有发送配置为“可折叠”的邮件。默认情况下,每条消息都是不同的,不会覆盖最后一条消息。 FCM很好地证明了这一点:
https://firebase.google.com/docs/cloud-messaging/concept-options
不可折叠和可折叠的邮件
不可折叠的消息 表示每个单独的消息都已传递到设备。一种 不可折叠的消息传递了一些有用的内容,而不是 可折叠的消息,例如无内容的“ ping”到移动应用 与服务器联系以获取数据。
...
可折叠消息是一条消息,如果尚未传递到设备,则可以用新消息替换。
...
或者,如果您不使用FCM,请直接here's a reference查看Apple的APN文档。
要允许合并类似的通知,您可以添加一个 通知请求中的折叠标识符。通常,当 设备处于在线状态,您发送给APN的每个通知请求 导致将通知发送到设备。但是,当 您的HTTP / 2请求标头APN中存在apns-collapse-id密钥 合并该键的值相同的请求。例如, 两次发送相同标题的新闻服务可以使用相同的 两个请求的折叠标识符值。然后,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();
}