PubNub聊天iOS应用程序未收到推送通知消息

时间:2018-04-16 14:22:39

标签: apple-push-notifications pubnub apn

我使用PubNub服务在我的应用程序中进行聊天,它现在可以正常工作,用于:订阅频道,将消息发布到频道,接收消息... 但是当一个用户将msg发送到用户订阅的频道时,我不希望收到推送通知消息。 我在PubNub admin中配置了APNS证书 enter image description here

我按照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,列表通道匹配。 但是当我尝试从聊天(从用户到用户,用户到频道)发送(发布)消息时,我的设备没有收到任何推送消息。

我会错过一些步骤或什么?请指教!

1 个答案:

答案 0 :(得分:2)

PubNub移动推送通知格式

如私人支持主题中所述,您的消息:

{"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移动推送通知的详细信息,请参阅: