0

我想知道通知我的 WP8 应用 ChannelUri 已更改的干净且正确的方法是什么?

我读到我需要在 ChannelUpdatedUri 方法中处理这个问题。但我在这里有一些疑问。这不需要我的应用程序一直在运行吗?

第二个查询是假设我使用 ChannelUpdatedUri 来监听 Uri 的变化。如果有更改,应用程序会在启动后立即通知吗?还是以后会通知?

问题是如果应用程序在启动时没有收到通知,那么它可能会在调用 ChannelUpdatedUri 之前重新注册新的频道 uri。不是吗?

请帮忙!

4

1 回答 1

1

只有当您附加了侦听器并且应用程序正在运行时,您才会收到 ChannelUri 更改的通知。

最好的方法是始终检查当前的 Uri,并在应用程序启动时将其传递给服务器。您可以在应用程序的整个生命周期内保持监听器的连接状态,如果它在应用程序运行时丢失,您可以获取一个新的监听器,但实际上,当手机不使用时,频道更有可能被丢弃/断开连接。

当然,在应用程序未使用但应用程序的实用程序主要围绕发送通知时,channelUri 可能会过期的情况。显然,您需要用户重新启动应用程序以获取新连接,但您不能告诉他们重新启动应用程序。
这是一个普遍的问题:你怎么告诉别人你不能和他们说话?

这种情况的现实是,如果您真的需要告诉某人再次启动该应用程序,您将需要另一种方式来做到这一点。

不幸的是,无法从后台代理获取更新的 channelUri,但您可以查询后端以查看是否需要,然后向用户举杯以提示他们重新打开应用程序。或者您可以在发生这种情况时从代理更新磁贴。

或者,您需要以另一种方式(例如电子邮件或短信?)向他们发送提示,但这取决于您捕获并安全地存储这些详细信息。

除了创建一个用户定期打开的应用程序(无论是否有通知)并将通知作为额外功能之外,没有完美的解决方案。

于 2013-09-24T13:25:53.803 回答