应用程序未运行时的 Windows Phone 7 推送通知
Posted
技术标签:
【中文标题】应用程序未运行时的 Windows Phone 7 推送通知【英文标题】:Windows Phone 7 push notification when the app is not running 【发布时间】:2012-08-08 19:03:07 【问题描述】:我正在尝试在 windows phone 7.5 中实现推送通知
当应用程序启动时,我在 App.xaml 中绑定了 channelUri。 然后我可以将我的应用切换到后台并根据 Uri 接收 toast 通知。
但这需要我先打开应用程序,然后将其设置为后台。
我可以在没有运行应用程序的情况下接收 toast 吗?也就是channelUri没有绑定的时候。
这是 Windows phone 7 中的默认行为,还是我在这里遗漏了一点?
如果这是这种行为,我如何在应用未运行时向手机发送某种形式的通知/信息?
我确实看到了这个Windows Phone 7.5 - Push Notifications when app is tombstoned。
更新:
-
我知道频道的活跃期长达 30 天,我只使用模拟器时是否一样?
应用程序应该与一个频道相关联以便接收通知,即使应用程序没有运行,如果通知频道处于活动状态,那么应用程序将接收 toast
【问题讨论】:
【参考方案1】:我认为你没有抓住重点。为了接收 toast 通知,您不必让应用程序在后台运行。 Toasts(和 Tile 通知)适用于应用程序根本没有运行的情况。因此,启动应用程序以获取 push-uri,然后将其发送到服务。理论上,您在 30 天后将不再需要。当涉及到模拟器时,只要模拟器正在运行,它就可以使用。一旦你关闭/关闭模拟器,push-uri 就消失了,你需要重新请求一个。 (一般来说,模拟器上没有保存任何东西,所以关闭和打开模拟器就像每次都得到一个新设备。)
希望这会有所帮助
【讨论】:
那 30 天是确定的,所以通道在 30 天内总是可靠的还是会在此之前到期? 不,这不是一个确定的计数。因此,从客户端服务编程的角度来看,您应该检测到这种情况。换句话说,如果您无法从设备中检索 uri,则应用程序必须识别并请求另一个。然后应该将该 URI 发送到带有标识符的服务,以便在服务器端将服务交付给您的应用程序的连续性。标识符的一个示例可以是您的设备 ID 或该服务上用户的用户名。此外,在服务端,您可以在对 POST 的响应 (X-SubscriptionStatus) 标头中检测通道 URI 的到期。以上是关于应用程序未运行时的 Windows Phone 7 推送通知的主要内容,如果未能解决你的问题,请参考以下文章
Windows Phone 8.1 应用程序未完全在 Windows 10 设备上运行