Lors de l’un de mes développement, j’ai eu besoin de créer une tuile dynamique mais pas avec un push depuis un serveur mais avec des images que j’avais dans mon application. Puisque j’ai du pas mal chercher, je vous propose donc ma solution.
Pour cet exemple, j’ai pris le flux RSS de Bonjour Hamster qui donne chaque jour une nouvelle photo d’un hamster. A la fin du tutorial, on aura une tuile dynamique avec 5 photos de hamster qui défilent. Cet exemple est très basique, libre à vous d’adapter à vos besoin après.
List HamsterItems
Chaque HamsterItem possède un titre et une uri (image).
public class HamsterItem { public string Title { get; set; } public Uri Image { get; set; } }
Voici la méthode qui va créer mes tiles. La première chose qui est faite, c’est de dire qu’on active la mise en queue des tiles que l’on va créer (maximum 5). Ensuite, on parcours nos HamsterItem. Dans le cas ou on a 5, on quitte notre boucle (ça ne sert à rien de continuer), sinon on va créer un schéma pour notre tile et ensuite ajouter ce schéma à notre tuile existante. Voici donc le code
private void CreateTiles(IEnumerable HamsterItems) { TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true); int count = 1; foreach (HamsterItem feedItem in HamsterItems) { count++; if (count > 5) break; string imageUrl = feedItem.Image.ToString(); string imageTitle = feedItem.Title; // Generate Schema For Large Tile string xmlString = " "; xmlString += " "; xmlString += " " + imageTitle + ""; // Generate Schema For Square Tile xmlString += " " + "" + ""; Windows.Data.Xml.Dom.XmlDocument doc = new Windows.Data.Xml.Dom.XmlDocument(); TileNotification tile = new TileNotification(doc); doc.LoadXml(xmlString); TileUpdateManager.CreateTileUpdaterForApplication().Update(tile); } }
Il existe plusieurs templates de tuiles disponibles, voici un lien avec tous les schémas : http://msdn.microsoft.com/en-us/library/windows/apps/hh761491.aspx
No Comments