正在接收来自服务器的通知 parse.com
Receiving notification from a server thought parse.com
我正在开发一个使用推送通知的应用程序。此通知由与解析连接的服务器发送。该应用程序应按如下方式工作:
- 发布者在网站上创建新闻
- 当他按下按钮 "publish" 时,他向安装了该应用程序的设备发送推送通知
- 目标设备收到通知
我查看了 Apple 文档以找到推送通知的正确负载,并且开发服务器的人创建了一个 JSON 此规范。
他看到流程是正确的,所以当有人按下 "publish" 时,他看到服务器正确生成了通知,但通知没有到达设备。
当我复制有效负载并通过解析网站生成通知时,设备会毫无问题地接收通知。为什么当他通过我们的服务器生成通知时通知不起作用,为什么当我们通过解析网站生成通知时通知有效?
我查看了 parse 网站上的通知历史记录,如下所示:
第一个和第二个通知是使用我们的服务器(API 图标)发送的,第三个是使用解析网站发送的,当我将鼠标放在 "target" 列上时它显示我这个:
我在代码下方添加以将我的应用程序注册到远程通知:
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
// Store the deviceToken in the current installation and save it to Parse.
PFInstallation *currentInstallation = [PFInstallation currentInstallation];
[[NSUserDefaults standardUserDefaults] synchronize];
[currentInstallation setDeviceTokenFromData:deviceToken];
[currentInstallation saveInBackground];
}
所以我想问你,为什么我从我们的服务器发送它们时收不到通知?为什么我从解析网站发送它们时可以收到通知?
怎么了?
谢谢
有效载荷
{
"id": "",
"date": "01/01/2015",
"groups": [17321],
"contacts": [16902,10402],
"media": {
"type": "image",
"thumb": "http://lorempixel.com/400/200",
"thumb_low": "",
"thumb_ori": "",
"target": "http://lorempixel.com/800/400",
"targetOn": 1
},
"alert": "titolo",
"sound": "default",
"badge": "1",
"text": "\n<p>testo <strong>testo bold</strong> <a href=\"http://www.google.it\" target=\"_blank\">link</a></p>",
"buttons": [{
"text": "Pulsante 2",
"url": "http://www.apple.com"
}, {
"text": "Pulsante 1",
"url": "http://www.google.it"
}],
"tags": ["tag1", "tag2"],
"notificationType": "push",
"breakingNews": 1,
"suggested": 0
}
有几件事。您尚未在有效负载中设置设备类型。当调用 didRegisterForRemoteNotifications 时,您还没有将用户注册到频道。这些方法不是强制性的,但可能会解决您的问题。
...
[PFPush storeDeviceToken:newDeviceToken]
[PFPush subscribeToChannelInBackground:@"global" target:self selector@selector(subscribeFinished:error:)];
}
然后将目标频道包含在您的负载中。
我正在开发一个使用推送通知的应用程序。此通知由与解析连接的服务器发送。该应用程序应按如下方式工作:
- 发布者在网站上创建新闻
- 当他按下按钮 "publish" 时,他向安装了该应用程序的设备发送推送通知
- 目标设备收到通知
我查看了 Apple 文档以找到推送通知的正确负载,并且开发服务器的人创建了一个 JSON 此规范。 他看到流程是正确的,所以当有人按下 "publish" 时,他看到服务器正确生成了通知,但通知没有到达设备。 当我复制有效负载并通过解析网站生成通知时,设备会毫无问题地接收通知。为什么当他通过我们的服务器生成通知时通知不起作用,为什么当我们通过解析网站生成通知时通知有效?
我查看了 parse 网站上的通知历史记录,如下所示:
第一个和第二个通知是使用我们的服务器(API 图标)发送的,第三个是使用解析网站发送的,当我将鼠标放在 "target" 列上时它显示我这个:
我在代码下方添加以将我的应用程序注册到远程通知:
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
// Store the deviceToken in the current installation and save it to Parse.
PFInstallation *currentInstallation = [PFInstallation currentInstallation];
[[NSUserDefaults standardUserDefaults] synchronize];
[currentInstallation setDeviceTokenFromData:deviceToken];
[currentInstallation saveInBackground];
}
所以我想问你,为什么我从我们的服务器发送它们时收不到通知?为什么我从解析网站发送它们时可以收到通知? 怎么了?
谢谢
有效载荷
{
"id": "",
"date": "01/01/2015",
"groups": [17321],
"contacts": [16902,10402],
"media": {
"type": "image",
"thumb": "http://lorempixel.com/400/200",
"thumb_low": "",
"thumb_ori": "",
"target": "http://lorempixel.com/800/400",
"targetOn": 1
},
"alert": "titolo",
"sound": "default",
"badge": "1",
"text": "\n<p>testo <strong>testo bold</strong> <a href=\"http://www.google.it\" target=\"_blank\">link</a></p>",
"buttons": [{
"text": "Pulsante 2",
"url": "http://www.apple.com"
}, {
"text": "Pulsante 1",
"url": "http://www.google.it"
}],
"tags": ["tag1", "tag2"],
"notificationType": "push",
"breakingNews": 1,
"suggested": 0
}
有几件事。您尚未在有效负载中设置设备类型。当调用 didRegisterForRemoteNotifications 时,您还没有将用户注册到频道。这些方法不是强制性的,但可能会解决您的问题。
...
[PFPush storeDeviceToken:newDeviceToken]
[PFPush subscribeToChannelInBackground:@"global" target:self selector@selector(subscribeFinished:error:)];
}
然后将目标频道包含在您的负载中。