locked
Windows 8 store app when deployed to win8.1 does not show live tiles

    Question

  • I understand that a new version=2 is added for the windows 8.1 store apps to add a fallback tiletemplate. But when a store app was created for windows 8 is deployed to win8.1 it still has version=1 and so the old templates should work, correct?

    But they don't. For some reason when running the same app in win8.1 the template name is automatically changed to TileWide310x150* and that does not work since version is set to 1

    If I do change the code to support version 2, how do I get the value for fallback on win8.1?

    Please help

    Thursday, August 15, 2013 1:11 AM

All replies

  • Hi,

    Which tile template are you using ? The document http://msdn.microsoft.com/en-us/library/windows/apps/bg182890.aspx#two   says :

    Changes to tile notifications

    When you send a tile notification, remember that your app could receive the notification while running on either Windows 8.1 Preview or Windows 8. Because the new names for existing templates are recognized only by Windows 8.1 Preview, the schema has added a fallback attribute. By including the fallback attribute, your notification payload can specify a Windows 8.1 Preview template along with a Windows 8 template, in case the notification is received on a Windows 8 system. To use the new template names and the fallback attribute, include the new version attribute, set to a value of 2, in the visual element as shown here.

    Also, you may want to have a look at tile templates and there availability in Windows 8.1 Preview at http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.notifications.tiletemplatetype.aspx

    The new Tiles sample for Windows 8.1 should also help - http://code.msdn.microsoft.com/windowsapps/app-tiles-and-badges-sample-5fc49148 

    -Sagar

    Thursday, August 15, 2013 1:45 PM
  • I am using the following xml

    <tile>
    <visual version="1" branding="none">
    <binding template="TileWidePeekImage06">
    <image id="1" src="ms-appx:///Assets/WideLogo.png"/>
    <image id="2" src="ms-appdata:///local/Images/TileLarge.png" alt="tile large image"/>
    <text id="1">Welcome</text>
    </binding>
    <binding template="TileSquarePeekImageAndText04">
    <image id="1" src="ms-appdata:///local/Images/TileLarge.png" alt="tile large image"/>
    <text id="1">Welcome</text>
    </binding>
    </visual>
    </tile>


    built as a Win8 Store app and it displays correctly on win8 but does not display on win8.1

    If I add debug statements to see what it is sending on a win8.1 system I get

    XML is [<tile><visual version="1" branding="none"><binding template="TileWide310x150PeekImage06"><image id="1" src="ms-appx:///Assets/WideLogo.png"/><image id="2" src="ms-appdata:///local/Images/TileLarge.png" alt="tile large image"/><text id="1">Welcome</text></binding><binding template="TileSquarePeekImageAndText04"><image id="1" src="ms-appdata:///local/Images/TileLarge.png" alt="tile large image"/><text id="1">Welcome</text></binding></visual></tile>]

    I thought if I change the code, to send version="2" and a fallback url that should work but I am creating the tile in code and so using TileTemplateType value to build the xml. So on a win8 system this gives me TileWidePeekImage06 and on win8.1 TileWide310x150PeekImage06. So question is how would I create the fallback portion programmatically? Bigger question is why does the win8 version "1" xml not work on win8.1

    Thanks

    Thursday, August 15, 2013 5:32 PM
  • Never mind. The version="2" portion is working. because on win8.1 the new "fallback" portion is not used so it doesnt matter what the name is.

    The question still remains that the version="1" live tile is not working on win8.1

    Also the PEEK templates used to scroll smoothly but that seems to be broken in win8.1 too.

    Thursday, August 15, 2013 6:20 PM
  • Hi,

    Sorry for reverting late.

    Following your scenario - I put the following code in a sample app - targeted as 8.0 , running on 8.1 :

           	    XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWidePeekImage06);
    
                XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");
                tileTextAttributes[0].InnerText = "Hello World! TileWidePeekImage06";
                XmlNodeList tileImageAttributes = tileXml.GetElementsByTagName("image");
    
                ((XmlElement)tileImageAttributes[0]).SetAttribute("src", "ms-appx:///Assets/TileWide310x150PeekImage06.png");
                ((XmlElement)tileImageAttributes[0]).SetAttribute("alt", "red graphic");
    
                
                TileNotification tileNotification = new TileNotification(tileXml);
    
                tileNotification.ExpirationTime = DateTimeOffset.UtcNow.AddSeconds(30);
    
                TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);

    Now, I did see version=2 template being passed with new template name. This ensures compatibility with newer templates and works perfectly fine.  I don't see any issues why this would work. 

    -Sagar

    Thursday, September 05, 2013 10:25 AM