0

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

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

非常感谢。

4

2 回答 2

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);

您可以从许多不同的模板中进行选择,并且您可能应该同时更新宽磁贴和方形磁贴,因为您不知道用户在他的开始屏幕上有什么。是有关如何执行此操作的更多详细信息。

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

要更频繁地更新磁贴,即使设备未插入,您也可以提前安排磁贴通知。当您的应用程序正在运行时,您可以从 BackgroundTask 添加多达 4096 个特定时间的磁贴更改,并在您的应用程序或 BackgroundTask 再次运行时添加新的更改。

于 2013-02-27T06:01:42.493 回答
1

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

MS 的一位同事不得不做类似的事情,因为他每秒都需要更新(实际上与下面的链接不同,但概念非常相似),并且以相同的方式完成。我有一个 tile helper 类,另一个同事我开发了它,如果你愿意的话——给我发一封电子邮件给 Microsoft,我会发过去的。我很快就会开始写一篇博客文章,但在那之前:)

一些代码应该可以帮助您了解大部分情况:

每分钟更新一次磁贴

从后台任务链接到关闭 磁贴更新

于 2013-02-27T08:01:52.387 回答