我使用PubNub服务在我的应用程序中进行聊天,它现在可以正常工作,用于:订阅频道,将消息发布到频道,接收消息... 但是当一个用户将msg发送到用户订阅的频道时,我不希望收到推送通知消息。 我在PubNub admin中配置了APNS证书
我按照link
测试了推送服务的PEM文件推送消息来了。 我将设备令牌添加到我订阅的频道
[self addPushNotificationsOnChannels:@[@"channel1", @"channel2"] withDevicePushToken:self.deviceToken andCompletion:^(PNAcknowledgmentStatus * _Nonnull status) {
if (!status.error) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Token Chat" message:status.errorData.information delegate:@"Sent token OK" cancelButtonTitle:@"Close" otherButtonTitles:nil];
[alert show];
}
else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Token error" message:status.errorData.information delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:nil];
[alert show];
}
}];
然后,我再次检查列表通道,再次添加deviceToken,列表通道匹配。 但是当我尝试从聊天(从用户到用户,用户到频道)发送(发布)消息时,我的设备没有收到任何推送消息。
我会错过一些步骤或什么?请指教!
答案 0 :(得分:2)
如私人支持主题中所述,您的消息:
{"data":{"time":1523961017642,"text":"Hello"},"event":"dev-ecteam","sender":"DOAN-dev-ecteam"}
...不包括pn_apns
。为了让PubNub知道您希望通过APNS将其作为推送通知发送,您必须在pn_apns
内包含该消息,并且APNS需要aps
密钥(data
密钥是必需的Android的)。
{
"pn_gcm": {
"data": {
"time": 1523961017642,
"text": "Hello"
},
"event": "dev-ecteam",
"sender": "DOAN-dev-ecteam"
},
"pn_apns": {
"aps": {
"time": 1523961017642,
"text": "Hello"
},
"event": "dev-ecteam",
"sender": "DOAN-dev-ecteam"
}
}
任何积极订阅的订阅者都会收到整条消息,但Android设备只会收到pn_gcm
的内容,而且注册推送的iOS设备会收到pn_apns
的内容通道上的通知。
有关PubNub移动推送通知的详细信息,请参阅: