我将推送通知发送到电话时遇到麻烦,它返回此错误:

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


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


据我现在在文档中未得到正常说明的操作和重新创建推式通道返回的URL
我如何知道到期发生在客户端?就现实世界中的运行时电话而言,它将停止接收消息,并且不知道发生了什么事情。
谢谢

最佳答案

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

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

1.唯一标识手机。 Microsoft.Phone.Info.UserExtendedProperties.GetValue("ANID")很可能是候选人,但请注意,这将要求您的应用具有ID_CAP_IDENTITY_DEVICE功能

2.在电话上设置一个HttpNotificationChannel并接收一个ChannelUri

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

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

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

关于c# - Windows Phone推送 channel 到期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10619768/

10-13 01:58