发送推送通知以从App内部更改磁贴

时间:2013-02-26 18:27:39

标签: javascript windows-store-apps

我有一个应用程序,它是很多引用和格言的“存储库”;我想通过从我的应用程序中随机发送一些格言来每隔5秒更改我的应用程序的磁贴!

有可能吗?或者我必须支付像Azure这样的服务器服务?在这种情况下确实存在一些免费的东西吗?

非常感谢。

2 个答案:

答案 0 :(得分:2)

您可以直接从应用中更改磁贴:

var template = notifications.TileTemplateType.TileWideText01;                      
var xml = notifications.TileUpdateManager.getTemplateContent(template);
xml.getElementsByTagName("text")[0].appendChild(xml.createTextNode("My tile text"));
var myNotification = new notifications.TileNotification(xml);
notifications.TileUpdateManager.createTileUpdaterForApplication().update(myNotification);

您可以选择many different templates,并且您可能应该同时更新宽幅和方形磁贴,因为您不知道用户在其开始屏幕上有什么。 Here有关如何做到这一点的详细信息。

我不确定你是否能够每5秒更新一次。您只能在应用运行时或BackgroundTask调用上述代码。如果您的应用处于锁定屏幕,则可以使用TimeTrigger并以15分钟或更短的间隔运行。如果不是那么唯一的选择是具有相同间隔的MaintenanceTrigger,仅在您的设备插入时运行。

要更频繁更新磁贴,即使设备未插入,也可以提前schedule tile notifications。当您的应用程序正在运行时,您可以在BackgroundTask中为特定时间添加最多4096个磁贴更改并添加新的磁贴更改 每当你的应用程序或BackgroundTask再次运行时。

答案 1 :(得分:1)

执行此操作的最佳方法是从后台任务安排通知。您的后台任务每15分钟运行一次(而不是更早),因此您必须在此时安排它们。

MS的同事必须做类似的事情,因为他每秒都需要更新(实际上与下面的链接不同,但是一个非常相似的概念),并且它以相同的方式完成。我有一个瓷砖助手班,另一个同事,如果你喜欢我开发了 - 给我发电子邮件adamt在微软,我会发送它。我很快就会开始在博客上写一篇博文,但直到那时:)

一些代码应该可以帮到你:

Tile update every minute

链接到 Tile updates from Background Task