关于消息推送

来源:互联网 发布:优化的同义词 编辑:程序博客网 时间:2024/05/17 09:04

以下内容转自 http://social.msdn.microsoft.com/Forums/zh-CN/windowsphonezhchs/thread/3511b5a7-7587-4add-aafc-8ea1ce5df7fb/



Push ChannelUri提取时, ChannelUri发生变化 


  • 2012年4月19日 6:19
    miqitangguo
     


    Hi:

           您好,我在 使用 HttpNotificationChannel pushChannel = HttpNotificationChannel.Find(channelName); 提取ChannelUri时,发现每次启动App,或者卸载App重新安装时,有时ChannelUri会发生变化。

    请问  1) ChannelUri一般在什么情况下会发生变化呢?

            2) 另外由于用户的ChannelUri会变化,导致App 后台服务WebService会发现一些ChannelUri,发送push 请求时,会返回412、404, 是不是这两种情况都说明这个ChannelUri 已经无效了呢?

            3) 一般412 是在手机什么情况下会返回此状态呢?

    • 已移动 dearsj001MVP 2012年4月19日 10:37 (发件人:Windows Phone 用户)
    •  

答案

  • 2012年4月20日 6:16
    Haixia Xie - MSFT  已答复


    你好,

    据我所知,Channel URI由 WP7 应用程序提供的服务名称、设备以及通道名称产生,可将通道名称视为由应用程序定义的唯一标识符,因此它可以向多个通知源注册事件,其中每一个都需要来自通知服务的唯一Channel URI。所以每次启动App或重新安装后ChannelUri都有可能是不同的。

    http://book.51cto.com/art/201111/301557.htm

    http://msdn.microsoft.com/zh-cn/windowsphone/gg502446.aspx

    出现(412) Precondition Failed错误是:设备处于不活动状态。404错误:此订阅无效并且在推送通知服务上不存在。

    http://msdn.microsoft.com/zh-cn/library/ff941100(v=vs.92).aspx

    所以若要接收推送通知,您的客户端 Windows Phone 应用程序都应该注册 ChannelUriUpdated 事件,防止推送通知 URI 发生更改。即使您已打开了一个通道,也应该注册 ChannelUriUpdated 事件,防止 URI 发生更改。

    关于接收推送通知客户端 Windows Phone 应用程序必须具备条件的详细信息,请参考:

    http://msdn.microsoft.com/zh-cn/library/hh202940(v=vs.92).aspx 

    另外,建议你看一看 Windows Phone SDK 7.1 Training Course中介绍Windows Phone RAW Notifications一文中的一个例子:

    http://msdn.microsoft.com/en-us/hh641329

    希望有所帮助。

    • 已标记为答案 Haixia Xie - MSFTModerator 2012年4月26日 1:15
    •  


原创粉丝点击