2

当我向手机发送推送通知时遇到问题,它返回以下错误:

[X-SubscriptionStatus] => Expired
[X-NotificationStatus] => Dropped
[X-DeviceConnectionStatus] => Connected

从这一点来看,我有两个问题:

  1. 就我在文档中没有得到正常说明和重新创建推送通道返回相同的 url 而言,现在该怎么办
  2. 我如何意识到到期发生在客户端?就现实世界中的运行时电话而言,它只会停止接收消息,并且不会知道发生了什么……谢谢
4

1 回答 1

3

在服务器端,您无能为力 - 您只需停止向该 URI 发送通知即可。

您可以做的是尝试确保您ChannelUri不会过期,或者如果它发生更改,请通知您的服务器端应用程序更改。基本流程是;

1 . 唯一标识电话。一个非常有可能的候选人,Microsoft.Phone.Info.UserExtendedProperties.GetValue("ANID")但请注意它需要您的应用程序具有该ID_CAP_IDENTITY_DEVICE功能

2 . 在手机上设置 aHttpNotificationChannel并接收ChannelUri.

3 . 将唯一的设备标识符和 发送ChannelUri到您的服务器。

4 . 订阅 上ChannelUriUpdated的通知HttpNotificationChannel。每当此事件触发时,发送重新发送设备 ID/ ChannelUri对到您的服务器。

按照这种模式,您应该始终在服务器端拥有正确的推送通知 Uri,只要用户定期运行您的应用程序以刷新推送通知通道。

于 2012-05-16T23:56:21.267 回答