在没有后台任务的情况下递增徽章值

时间:2015-12-01 10:43:07

标签: c# push-notification windows-phone-8.1 windows-store-apps uwp

我正在构建一个消息传递应用程序作为通用Windows 8.1商店项目,我对推送通知系统感到有些困惑。我正在使用WNS,基本例程工作正常(通知渠道uri交换,提供吐司通知等)

现在我想通过服务器通知增加徽章值,并使用本地通知递减它。在挖掘手册后,我似乎没有找到一种方法来做到这一点,没有后台任务可以接收原始通知并做一些事情来设置正确的值。我找到的只有setting the value。我宁愿完全避免使用后台任务,因为它们可以被节电器阻止(无论用户意图与否)。例如,Skype似乎无法提供任何阻止后台执行的通知,我也不希望我的应用程序以这种方式行事。

所以,有两个问题我想回答:

  1. 有没有办法通过通知单独增加/减少徽章价值?
  2. 有没有办法在应用程序代码中获取当前徽章值?

2 个答案:

答案 0 :(得分:2)

好吧,我尝试做同样的事情,但找不到任何东西,最好的方法是在后台任务的帮助下完成,并添加后台任务,以便总是允许通过覆盖控件用户第一次打开应用程序。

希望,这对你有帮助。

答案 1 :(得分:1)

平铺详细信息(包括徽章值)是只读的。

尽量不要将徽章编号视为递增或递减,而只是设置为新值。

您需要运行代码才能更改值。这可能是在本地应用程序(运行时),设备上的后台代理/任务或某处的远程服务器上。

要设置新值,您必须知道该值应该是多少。如果它与先前显示的值相关,则需要单独跟踪它。

因此,以相反的顺序回答您的问题。

2)不,你无法读取当前显示的值。

1)您可以通过将显示值设置为新的,更高或更低的值来递增或递减显示的值。设置新值只能使用绝对值来完成,因为没有增量(或减量)消息的概念。发送更新磁贴的通知可以从任何地方(前台,后台或远程)发送,但是应该在何时以及如何完成此操作取决于对应用/用户最佳的内容。

相关问题