PubNub 聊天 iOS 应用未收到推送通知消息
PubNub chat iOS app doesn't receive Push notification msg
我在我的应用程序中使用 PubNub 服务聊天,它现在可以正常工作,用于:订阅频道、向频道发布消息、接收消息...
但我不想在一个用户向用户订阅的频道发送消息时接收推送通知消息。
我在 PubNub 管理中配置了 APNS 证书
我针对推送服务测试了我的 PEM 文件 link
推送消息来了。
我将我的设备令牌添加到我订阅的频道
[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 的列表通道,列表通道是匹配的。
但是当我尝试从聊天(从用户到用户,用户到频道)发送(发布)消息时,我的设备没有收到任何推送消息。
我可能漏掉了一些步骤什么的?请指教!
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
的内容,而 pn_apns
的内容也会收到iOS 台设备在频道上注册了推送通知。
有关 PubNub 移动推送通知的详细信息,请参阅:
- PubNub makes it easy to deliver APNS and/or GCM push notifications
- Sending APNS and GCM Messages to Subscribers and Mobile Push Notification Services in One API Call
- PubNub iOS SDK Mobile Push Gateway Tutorial
- PubNub iOS SDK Mobile Push Gateway Tutorial
- How can I troubleshoot my push notification issues?
我在我的应用程序中使用 PubNub 服务聊天,它现在可以正常工作,用于:订阅频道、向频道发布消息、接收消息...
但我不想在一个用户向用户订阅的频道发送消息时接收推送通知消息。
我在 PubNub 管理中配置了 APNS 证书
我针对推送服务测试了我的 PEM 文件 link
推送消息来了。 我将我的设备令牌添加到我订阅的频道
[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 的列表通道,列表通道是匹配的。 但是当我尝试从聊天(从用户到用户,用户到频道)发送(发布)消息时,我的设备没有收到任何推送消息。
我可能漏掉了一些步骤什么的?请指教!
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
的内容,而 pn_apns
的内容也会收到iOS 台设备在频道上注册了推送通知。
有关 PubNub 移动推送通知的详细信息,请参阅:
- PubNub makes it easy to deliver APNS and/or GCM push notifications
- Sending APNS and GCM Messages to Subscribers and Mobile Push Notification Services in One API Call
- PubNub iOS SDK Mobile Push Gateway Tutorial
- PubNub iOS SDK Mobile Push Gateway Tutorial
- How can I troubleshoot my push notification issues?