UI Windows 8ã¯å€§å¹
ã«åèšèšãããã¿ã€ã«ä»ãã®ã¹ã¿ãŒãç»é¢ã衚瀺ãããŸããïŒã¿ã€ã«-以äžã®æ¬åŒ§å
ã«äœ¿çšãããŠããè±èªã®çšèªã瀺ããŸãïŒã ã¢ã€ã³ã³ã«å¯Ÿããã¿ã€ã«ã®äž»ãªå©ç¹ã®1ã€ã¯ããã©ã€ããïŒã©ã€ãã¿ã€ã«ïŒãå¯èœã§ãããéèŠãªæ
å ±ãã¿ã€ã«äžã§çŽæ¥ãŠãŒã¶ãŒã«æäŸã§ããããšã§ãã ããã«ãã»ã«ã³ããªã¿ã€ã«ïŒã»ã«ã³ããªã¿ã€ã«ïŒãäœæããããšãã§ããŸããããã«ãããç¹å®ã®ãã©ã¡ãŒã¿ãŒã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ããããã¢ããªã±ãŒã·ã§ã³ã®å¥¥æ·±ãã«ããããŒãžã«ç§»åãããã§ããŸãã äŸã¯ãã¡ã€ã³ã¿ã€ã«ã«å€©æ°ã衚瀺ããã»ã«ã³ããªã¿ã€ã«ã«éžæããéœåžã®å€©æ°ã衚瀺ãã倩æ°ã¢ããªã±ãŒã·ã§ã³ã§ãã
ã¿ã€ã«ãµããŒãã®é©åãã€é«å質ã®å®è£
ã«ãããã¢ããªã±ãŒã·ã§ã³ã®æ©èœã倧å¹
ã«åäžãããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã«ãã°ã€ã³ããŠã倿Žããã£ãããšãã¿ã€ã«ã«æžãçããããšãã§ããŸãã
ãã®èšäºã§ã¯ã次ã®ç¹ã«ã€ããŠèª¬æããŸãã
1.ããã©ã«ãã§ã¿ã€ã«ã
2.ã©ã€ãã¿ã€ã«
2.1ã ãã¿ãŒã³
2.2ã ã¿ã€ã«ãå®è£
ããæ¹æ³
2.3ã ã©ã€ãã¿ã€ã«ã å®å
šãªå®è£
ã
2.4ã ã¿ã€ã«å
ã®ç»åãžã®ãªã³ã¯ã
3.çããŠããã¿ã€ã«ã®å¯¿åœã管çããã
3.1ã ã¿ã€ã«ãç¡å¹ã«ãã
3.2ã ã¿ã€ã«ã®å¶éæéãèšå®ããŸãã
3.3ã ã¹ã±ãžã¥ãŒã«ãããã¿ã€ã«è¡šç€ºèšå®ã
3.4ã ã¹ã±ãžã¥ãŒã«ãããã¿ã€ã«ãªã¹ã管çïŒãªã¹ãã®ååŸãåé€ïŒ
4.ã¿ã€ã«ã®ãã¥ãŒã
5.ã¿ã€ã«ã®ã€ãã³ãïŒãããžïŒã®ã€ã³ãžã±ãŒã¿ãŒ
6.ã¿ã€ã«ã®å®æçãªæŽæ°ïŒãªã¢ãŒããªãœãŒã¹ããïŒ
7.äºæ¬¡ã¿ã€ã«
7.1ã ã»ã«ã³ããªã¿ã€ã«ã®ä¿è·
7.2ã ã»ã«ã³ããªã¿ã€ã«ããã®ã¢ããªã±ãŒã·ã§ã³ã®ã¢ã¯ãã£ãå
7.3ã åºå®ã¿ã€ã«ãåé€ãã
7.4ã äºæ¬¡ã¿ã€ã«ã®æŽ»æ§å
8.ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãšããã·ã¥éç¥ã«ããã©ã€ãã¿ã€ã«ç®¡ç
1.ããã©ã«ãã§ã¿ã€ã«ã
Win8ã§ã¯ã2ã€ã®äž»èŠãªãµã€ãºã®ã¿ã€ã«ãèšå®ã§ããŸã-æ£æ¹åœ¢150x150ïŒæ£æ¹åœ¢ïŒãšå¹
310x150ïŒå¹
ïŒã
Package.appxmanifestã¢ããªã±ãŒã·ã§ã³ã®ãããã§ã¹ãã§ã¯ãæ£æ¹åœ¢ã¿ã€ã«ã®ã¿ãããã©ã«ãã§æå®ãããŠããŸãã ã¯ã€ãã¿ã€ã«ã®ãµããŒãã远å ããã«ã¯ãç»åãµã€ãº310h150ãžã®ãªã³ã¯ã远å ããã ãã§ãã ãã®å Žåãã¢ã€ã³ã³ã®ã³ã³ããã¹ãã¡ãã¥ãŒã§ã衚瀺ã¢ãŒãïŒæ£æ¹åœ¢ãŸãã¯ã¯ã€ãïŒãåãæ¿ããããšãå¯èœã«ãªããŸãã

ããã§ãã¢ããªã±ãŒã·ã§ã³ãèµ·åããŠã¡ã€ã³ããŒãžã«ç§»åãããšãæ£æ¹åœ¢ãšå転ã«åãæ¿ããããå¹
ã®åºãã¿ã€ã«ã衚瀺ãããŸãã
èæ¯è²ã¯ããããã§ã¹ãã®åãããŒãžã®BackgroundColorããããã£ã§å€æŽã§ããŸãã
ããšãã°ãæ¿ãç·ã®å Žåãå€ãïŒ005500ã«èšå®ã§ããŸãã
ããã©ã«ãã®è²ã¯ã°ã¬ãŒïŒ464646ã§ãåŸã§äœ¿çšããŸãã
2.ã©ã€ãã¿ã€ã«
2.1ã ãã¿ãŒã³
Windows 8ã¯ãWindows Phoneã®ã©ã€ãã¿ã€ã«ãšåæ§ã«ãã©ã€ãã¿ã€ã«ããµããŒãããŠããŸãã ãã©ã€ãã¿ã€ã«ãã«ååãä»ããããã®ã¯ããŠãŒã¶ãŒã®åªå
æ
å ±ã§ã¿ã€ã«ããåæŽ»æ§åãããå¯èœæ§ãããããã§ãã
WinRT APIã¯ãã¿ã€ã«çšã®46ã®ãã³ãã¬ãŒããæäŸããŸãã åãã³ãã¬ãŒãã®è©³çްãªèª¬æã¯ã
MSDNããŒãžã«ãããŸãã
æ£æ¹åœ¢ã®ã¿ã€ã«ã«ã¯10åãå¹
ã®åºããã³ãã¬ãŒãã«ã¯36åã®ãã³ãã¬ãŒãããããŸããã¢ããªã±ãŒã·ã§ã³ã§å¹
ã®åºãã¿ã€ã«ã䜿çšããäºå®ããªãå Žåã¯ãæ£æ¹åœ¢ã®ã¿ã€ã«ã®10åã®ãã³ãã¬ãŒãã§ååã§ãã
ããã«ããã¹ãŠã®ã¿ã€ã«ãããã¹ããã°ã©ãã£ãã¯ãããã³ããã¹ãä»ãã°ã©ãã£ãã¯ã«åå²ã§ããŸãã ãã¹ãŠã®æ£æ¹åœ¢ã®äž¡é¢ã¿ã€ã«ã¯ãç»åãããã¹ãã«å®æçã«å€æŽããã¢ãã¡ãŒã·ã§ã³ã¿ã€ã«ã§ãã
æ£æ¹åœ¢ã®ã¿ã€ã«ãã³ãã¬ãŒãããã¹ã | ã°ã©ãã£ã㯠| ã°ã©ãã£ãã¯ã¹ãšããã¹ãïŒäž¡é¢ïŒ |
TileSquareBlockã TileSquareText01ã TileSquareText02ã TileSquareText03ã TileSquareText04ã
| TileSquareImage | TileSquarePeekImageAndText01 TileSquarePeekImageAndText02 TileSquarePeekImageAndText03 TileSquarePeekImageAndText04
|
å¹
ã®åºãã¿ã€ã«ã®éžæã¯ã¯ããã«å€§ããã§ãã
åæã«ããçŽç²ãªã圢åŒã®ã°ã©ãã£ãã¯ã¯2ã€ã ãã§ãããã°ã©ãã£ãã¯ãšããã¹ãã1ã€ã®ã¿ã€ã«ã«é
眮ãããçé¢ã¿ã€ã«ããããŸãã
ã¯ã€ãã¿ã€ã«ãã³ãã¬ãŒãããã¹ã | ã°ã©ãã£ã㯠| ããã¹ããšã°ã©ãã£ã㯠|
TileWideBlockAndText01 TileWideBlockAndText02 TileWideText01 TileWideText02 TileWideText03 TileWideText04 TileWideText05 TileWideText06 TileWideText07 TileWideText08 TileWideText09 TileWideText10 TileWideText11 | TileWideImage TileWideImageCollection | çé¢ TileWideImageAndText01 TileWideImageAndText02 TileWideSmallImageAndText01 TileWideSmallImageAndText02 TileWideSmallImageAndText03 TileWideSmallImageAndText04 TileWideSmallImageAndText05
äºåœéïŒã¢ãã¡ãŒã·ã§ã³åãããç§»è¡ïŒ TileWidePeekImageCollection01 TileWidePeekImageCollection02 TileWidePeekImageCollection03 TileWidePeekImageCollection04 TileWidePeekImageCollection05 TileWidePeekImageCollection06 TileWidePeekImageAndText01 TileWidePeekImageAndText02 TileWidePeekImage01 TileWidePeekImage02 TileWidePeekImage03 TileWidePeekImage04 TileWidePeekImage05 TileWidePeekImage06
|
2.2ã ã¿ã€ã«ãå®è£
ããæ¹æ³
ã©ã€ãã¿ã€ã«ã®ãµããŒãã®è¿œå ã¯éåžžã«ç°¡åã§ãã
MSDNã®ãªã³ã¯ã®äžã«ãxmlãã³ãã¬ãŒãã®èª¬æããããŸãã
TileSquareBlockæ£æ¹åœ¢ã¿ã€ã«ã
XMLèšè¿°ã§è¿œå ããäŸãèããŠã¿ãŸãããã
<tile> <visual> <binding template="TileSquareBlock"> <text id="1">Text Field 1</text> <text id="2">Text Field 2</text> </binding> </visual> </tile>
ãã³ãã¬ãŒãã¯ãæ°å€æ
å ±ã衚瀺ããã®ã«æé©ã§ãã èŠçŽ å
ã®ã¿ã°ã¯ãå¿
èŠãªå€ãèšå®ããããã«äœ¿çšãããŸãã
æåã®ãã£ãŒã«ãã«å€25ãã2çªç®ã®ãã£ãŒã«ãã«åºŠãæå®ããŸãã
<tile> <visual> <binding template="TileSquareBlock"> <text id="1">25</text> <text id="2">degrees</text> </binding> </visual> </tile>
ãã³ãã¬ãŒããæ±ºå®ããããã³ãŒãã®èšè¿°ãå§ããŸãããã
ã¿ã€ã«ãå®è£
ãã3ã€ã®ç°ãªãæ¹æ³ããããŸãã
2.2.1ã ãæåãå®è£
ãã®ã¡ãœããã®æ¬è³ªã¯ãå¿
èŠãªXmlããã¥ã¡ã³ããæåã§çæããããã«åºã¥ããŠã¿ã€ã«ãäœæããããšã§ãã
var xml = @"<tile> <visual> <binding template=""TileSquareBlock""> <text id=""1"">25</text> <text id=""2"">Degrees</text> </binding> </visual> </tile>"; var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(xml); var notification=new TileNotification(xmlDocument); TileUpdateManager.CreateTileUpdaterForApplication().Update(notification);
2.2.2ã äºåå®çŸ©ããããã³ãã¬ãŒãã«ãã
WinRTã«ã¯æ¢è£œã®ãã³ãã¬ãŒãããããŸãã WinRT APIâ TileUpdateManager.GetTemplateContentâã䜿çšããŠãXmlDocumentãã³ãã¬ãŒãã䜿çšããŠä»»æã®ãã³ãã¬ãŒãXmlDocumentãããŒãããå€ã倿Žã§ããŸãã
var xmlDocument = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareBlock); var nodes = xmlDocument.GetElementsByTagName("binding").First().ChildNodes; nodes[0].InnerText = "25"; nodes[1].InnerText = "Degrees"; var notification = new TileNotification(xmlDocument); TileUpdateManager.CreateTileUpdaterForApplication().Update(notification);
ããããæãæéã®ããããªãã·ã§ã³ã§ãã ãã³ãã¬ãŒãã®æ§é ãèšæ¶ããã ãã§ãªããå€ãèšå®ããããã®ã³ãŒããããã«èšè¿°ããå¿
èŠããããŸãã
2.2.3ã NotificationsExtensionsã©ã€ãã©ãªã®äœ¿çš
å
¬åŒã®
äŸã«ã¯ãã¿ã€ã«ã®æäœãç°¡åã«ããããã«èšèšãããNotificationsExtensionsã©ã€ãã©ãªãä»å±ããŠããŸãã ã©ã€ãã©ãªã¯WinRT APIã®ã©ãããŒã§ãããå¿
èŠãªxmlããã¥ã¡ã³ããåéããŸãã ãã®ã©ã€ãã©ãªã䜿çšããã¿ã€ã«å®è£
ã®å€èгãèŠãŠã¿ãŸãããã
ITileSquareBlock tileContent = TileContentFactory.CreateTileSquareBlock(); tileContent.TextBlock.Text = "25"; tileContent.TextSubBlock.Text = "Degrees"; TileUpdateManager.CreateTileUpdaterForApplication().Update(tileContent.CreateNotification());
ã芧ã®ãšããããã®ã©ã€ãã©ãªã«ãããã¿ã€ã«ã®æäœãå°ãç°¡åã«ãªããŸãã ãã®èšäºã®åŸåã§ã¯ãäž»ã«æåã®æ¹æ³ãæ€èšããŸããããã«ãããããã»ã¹ã®çè§£ãæ·±ãŸãã2çªç®ãš3çªç®ã®æ¹æ³ãæ£ãã䜿çšããããã«å¿
èŠãªç¥èãåŸãããããã§ãã
å®è£
æ¹æ³ã決å®ããããæ¬¡ã®è€éã§ãªãå°ããªããŽããããã§ã¹ãã«è¿œå ããŸãã ïŒå°ããªããŽã¯ãªãã·ã§ã³ã§ãããå¿
é ã§ã¯ãããŸããïŒã

ããã§ãã¢ããªã±ãŒã·ã§ã³ãèµ·åããåŸãã¡ã€ã³ã¿ã€ã«ããçãè¿ãããã³ã³ãã³ããå«ãã¿ã€ã«ã«ç»åã倿ŽãããŸãïŒã¿ã€ã«ã¢ãŒãããæ£æ¹åœ¢ãã«ãªã£ãå ŽåïŒã

ãã¯ã€ããã¿ã€ã«ã«ã€ããŠã¯ã倿Žã¯ãããŸããããã¿ã€ã«ãæ£ããå®è£
ããæ¹æ³ãããã«æ€èšããŸãã
2.3ã ã©ã€ãã¿ã€ã«ã å®å
šãªå®è£
ã
æ£æ¹åœ¢ã®ã¿ã€ã«ã ãã§ãªããå¹
ã®åºãã¿ã€ã«ããµããŒãã§ããŸãã
ã¯ã€ããšã¹ã¯ãšã¢ã®äž¡æ¹ã®ã¿ã€ã«ãµããŒãã远å ããã«ã¯ããããã1ã€ã®xmlèŠçŽ ã«çµåããå¿
èŠããããŸãã
çµåã¯éåžžã«åçŽã§ã-ã¿ã°ã1ã€ã®xmlã«çµåããå¿
èŠããããŸãã
ã€ãŸã æ£æ¹åœ¢ã¿ã€ã«ã®ãã³ãã¬ãŒããéžæããå ŽåïŒ
<tile> <visual> <binding template="TileSquareBlock"> <text id="1">25</text> <text id="2">degrees</text> </binding> </visual> </tile>
ã¯ã€ãã¿ã€ã«ã®ãã³ãã¬ãŒãïŒ
<tile> <visual> <binding template="TileWideText03"> <text id="1">25 degrees</text> </binding> </visual> </tile>
çµåãããããŒãžã§ã³ã¯æ¬¡ã®ããã«ãªããŸãã
<tile> <visual> <binding template="TileSquareBlock"> <text id="1">25</text> <text id="2">degrees</text> </binding> <binding template="TileWideText03"> <text id="1">25 degrees</text> </binding> </visual> </tile>
å°ããªãã«ããŒã¡ãœããã远å ããŸããããã¯èšäºã®åŸåã§äœ¿çšããŠãã³ãŒãã®éãæžãããŸãã
private TileNotification CreateNotification(string xml) { var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(xml); return new TileNotification(xmlDocument); }
ããã§ãã¯ã€ãã¿ã€ã«ãšã¹ã¯ãšã¢ã¿ã€ã«ã®å®è£
ã¯æ¬¡ã®ããã«ãªããŸãã
var tile = CreateNotification(@"<tile> <visual> <binding template=""TileSquareBlock""> <text id=""1"">25</text> <text id=""2"">Degrees</text> </binding> <binding template=""TileWideText03""> <text id=""1"">25 degrees in Moscow</text> </binding> </visual> </tile>"); TileUpdateManager.CreateTileUpdaterForApplication().Update(tile);
ã¯ã€ãã¿ã€ã«ãšã¹ã¯ãšã¢ã¿ã€ã«ã®ã³ã³ãã³ããäœæãããããããã¯ã€ããã¿ã€ã«ã¢ãŒãã«åãæ¿ãããšã次ã®ããã¹ãã衚瀺ãããŸãã

NotificationExtensionsã©ã€ãã©ãªã¯ãå¹
åºã§æ£æ¹åœ¢ã®ã¿ã€ã«ãæå®ããæ©èœããµããŒãããŠããŸãã ãã®ã©ã€ãã©ãªã䜿çšããåæ§ã®äŸãèããŠã¿ãŸãããã
ITileSquareBlock squareTile = TileContentFactory.CreateTileSquareBlock(); squareTile.TextBlock.Text = "25"; squareTile.TextSubBlock.Text = "Degrees"; ITileWideText03 wideTile = TileContentFactory.CreateTileWideText03(); wideTile.TextHeadingWrap.Text = "25 degrees in Moscow"; wideTile.SquareContent = squareTile; TileUpdateManager.CreateTileUpdaterForApplication().Update(squareTile.CreateNotification());
ããã§ã¯ã2çš®é¡ã®ã¿ã€ã«ã®ããã³ãã«ãããæ£æ¹åœ¢ã¿ã€ã«wideTile.SquareContent = squareTileãžã®åç
§ã瀺ãããšã«ãã£ãŠå®è¡ãããŸãã
2.4ã ã¿ã€ã«å
ã®ç»åãžã®ãªã³ã¯ã
ã°ã©ãã£ãã¯æ
å ±ã¯ãå€ãã®å Žåããªãã³ã°ã¿ã€ã«ã®äž»èŠãŸãã¯éèŠãªã³ã³ããŒãã³ãã§ãã ã°ã©ãã£ãã¯ã衚瀺ããæ©èœãæäŸãããã³ãã¬ãŒãã®1ã€ãæ€èšããŠãã ããã
å¹
ã®åºãã¿ã€ã«ã®å Žåã¯TileWideImageã¿ã€ã«ãsquareã®å Žåã¯TileSquareImageãšããŸãã
ããŸããŸãªãœãŒã¹ã®ã°ã©ãã£ãã¯ã衚瀺ããæ¹æ³ãæ€èšããŠãã ããã
ãããã®ç»åã衚瀺ããå°ããªãã«ããŒã¡ãœããã远å ããŸãã
private void ImageLiveTile(string squareImageUri, string wideImageUri) { var tile = CreateNotification(String.Format(@"<tile> <visual> <binding template=""TileSquareImage""> <image id=""1"" src=""{0}"" alt=""alt text""/> </binding> <binding template=""TileWideImage""> <image id=""1"" src=""{1}"" alt=""alt text""/> </binding> </visual> </tile>",squareImageUri,wideImageUri)); TileUpdateManager.CreateTileUpdaterForApplication().Update(tile); }
ãŸããã¢ããªã±ãŒã·ã§ã³ã®Assetsãã©ã«ããŒã«ããã¿ã€ã«ã衚瀺ããæ¹æ³ãèŠãŠãããŸãã
ImageLiveTile(@"Assets\SquareTileLogo.png", @"Assets\WideTileLogo.png");
ãã®åŸã次ã®ã¿ã€ã«ã確èªã§ããŸãã
çžå¯Ÿãã¹ã®ä»£ããã«ã絶察ãã¹ã«æ²¿ã£ãŠãããžã§ã¯ãå
ã®ãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããå¯èœæ§ããããŸãã ãããã£ãŠã次ã®ã¢ãã¬ã¹ã§ãåæ§ã®çµæãåŸãããŸãã
ImageLiveTile(@"ms-appx:///Assets/SquareTileLogo.png", @"ms-appx:///Assets/WideTileLogo.png")
WebãªãœãŒã¹ããç»åã衚瀺ããæ©èœããããŸãã ããšãã°ã150x150ã®æ£æ¹åœ¢ã®ã¿ã€ã«ãš320x159ã®å¹
ã®ã¿ã€ã«ã®åãåçãflickrã§æ®åœ±ããŸãã
ImageLiveTile(@"http://farm5.staticflickr.com/4019/4529892979_23bcdc7b1e.jpg", @"http://farm5.staticflickr.com/4019/4529892979_23bcdc7b1e_n.jpg")
å¿ã«çããŠããã¹ãå¯äžã®ããšã¯ãåçãé©åãªãµã€ãºã§ãªããã°ãªããªããšããããšã§ãã 倧ããããç»åã¯è¡šç€ºããããå°ããªã¿ã€ã«ã¯ã¹ãã¬ããåŸã®å質ãäœäžããŸãã
ããŒã«ã«ã¹ãã¬ãŒãžå
ã®ã¿ã€ã«ãåç
§ããããšãã§ããŸãã ãããè¡ãã«ã¯ã
ms-appdataãã¬ãã£ãã¯ã¹ã䜿çšããŸã
ïŒ/// local /ããšãã°ãã€ã³ã¿ãŒãããäžã®æå®ãããã¢ãã¬ã¹ããæå®ããããã¡ã€ã«åã®ãã¡ã€ã«ã¹ãã¬ãŒãžã«ãã¡ã€ã«ãä¿åããå°ããªã·ã³ãã«ãªãã«ããŒã¡ãœããã远å ããŸãã
private async Task SaveImage(string url, string fileName) { var client = new HttpClient(); var bytes = await client.GetByteArrayAsync(url); var file= await ApplicationData.Current.LocalFolder.CreateFileAsync(fileName,CreationCollisionOption.ReplaceExisting); var writeStream = await file.OpenAsync(FileAccessMode.ReadWrite); var streamWriter = new BinaryWriter(writeStream.AsStreamForWrite()); streamWriter.Write(bytes); streamWriter.Flush(); }
ããã§ãããŒã«ã«ã¹ãã¬ãŒãžã«ç»åãä¿åã§ããŸã
await SaveImage(@"http://farm5.staticflickr.com/4019/4529892979_23bcdc7b1e.jpg", "squareTile.jpg"); await SaveImage(@"http://farm5.staticflickr.com/4019/4529892979_23bcdc7b1e_n.jpg", "wideTile.jpg");
ã©ã€ãã¿ã€ã«ãäœæãããšãã«åœŒã«ç®ãåãã
ImageLiveTile(@"ms-appdata:///local/squareTile.jpg", @"ms-appdata:///local/wideTile.jpg")
3.çããŠããã¿ã€ã«ã®å¯¿åœã管çããã
äžã§èŠãããã«ãã¿ã€ã«ã¯äœããã®æ
å ±ãååŸããŸãã ãã®æ
å ±ã®æå¹æéãå¶åŸ¡ããã¿ã€ã«ã®è¡šç€ºæéãå¶åŸ¡ããããšãã§ããŸãã
3.1ã ã¿ã€ã«ãç¡å¹ã«ãã
ãŸããã¿ã€ã«ãç¡å¹ã«ããæ¹æ³ãæ€èšããŸãã
TileUpdateManager.CreateTileUpdaterForApplication().Clear();
ãã®ã¡ãœãããå®è¡ããåŸãã¿ã€ã«ã¯ããã©ã«ãã®ã¿ã€ã«ã«çœ®ãæããããŸãã
3.2ã ã¿ã€ã«ã®å¶éæéãèšå®ããŸãã
ãŸããã¿ã€ã«ãäœæããããšãã«ããã®å¯¿åœãèšå®ããããšãã§ããŸãã ããšãã°ãããã¯ããã°ããããŠããé¢é£æ§ã倱ãã€ãã³ãïŒããšãã°ãçŸåšã®ãããŒããã£ã¹ãã«é¢ããæ
å ±ããããŒããã£ã¹ãã§è¡šç€ºããïŒã«äœ¿çšã§ããŸãã
äŸãšããŠã10ç§åŸã«ã©ã€ãã¿ã€ã«ããªãã«ããŸãããã
var tile = CreateNotification(@"<tile> <visual> <binding template=""TileSquareBlock""> <text id=""1"">40</text> <text id=""2"">Degrees</text> </binding> <binding template=""TileWideText03""> <text id=""1"">40 degrees in Moscow</text> </binding> </visual> </tile>"); tile.ExpirationTime = DateTimeOffset.UtcNow.AddSeconds(10); TileUpdateManager.CreateTileUpdaterForApplication().Update(tile);
ã³ãŒããå®è¡ããŠã¢ããªã±ãŒã·ã§ã³ãæå°åãããšã10ç§åŸã«ã©ã€ãã¿ã€ã«ãã©ã®ããã«è¡šç€ºããã衚瀺ãããªããªãããããããŸãã
3.3ã ã¹ã±ãžã¥ãŒã«ãããã¿ã€ã«è¡šç€ºèšå®ã
ããšãã°ãã€ãã³ãã1æéã§å§ãŸãå Žåãããããããã®ã€ãã³ããçºçãããšãã«ã¿ã€ã«ãä»ããã§ã¯ãªãã1æéã§è¡šç€ºããå¿
èŠããããŸãã
ããšãã°ã10ç§åŸã«ã¿ã€ã«ãã€ã³ã¹ããŒã«ããå Žåãæ¬¡ã®ã³ãŒããèšè¿°ããŸãã
var tile = CreateNotification(@"<tile> <visual> <binding template=""TileSquareBlock""> <text id=""1"">10</text> <text id=""2"">Degrees</text> </binding> <binding template=""TileWideText03""> <text id=""1"">10 degrees in Moscow</text> </binding> </visual> </tile>"); var scheduledTileNotification = new ScheduledTileNotification(tile.Content, DateTimeOffset.UtcNow.AddSeconds(10)); TileUpdateManager.CreateTileUpdaterForApplication().AddToSchedule(scheduledTileNotification);
ScheduledTileNotificationã¡ãœããã¯ãXmlDocumentãåãå
¥ããŸãã ïŒãã®å Žåãtile.Contentã«ã¯XmlDocumentãå«ãŸããŠããŸãïŒã
åæ§ã«ãã¹ã±ãžã¥ãŒã«ãããèµ·åãšã¿ã€ã«ã®æå¹æéãçµã¿åãããããšãã§ããŸãã
ããšãã°ã15ç§ãã10ç§åŸã«ã¿ã€ã«ãäœæããã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
var scheduledTileNotification = new ScheduledTileNotification(tile.Content, DateTimeOffset.UtcNow.AddSeconds(10))
3.4ã ã¹ã±ãžã¥ãŒã«ãããã¿ã€ã«ãªã¹ã管çïŒãªã¹ãã®ååŸãåé€ïŒ
ã¹ã±ãžã¥ãŒã«ã§äžåºŠã«è€æ°ã®ã¿ã€ã«ã䜿çšããäºå®ãããå Žåã¯ããã®æ©äŒãå©çšããŠã¿ã€ã«ã«èå¥åãå²ãåœãŠãå¿
èŠããããŸãã
scheduledTileNotification.Id = "1";
TileUpdateManager.CreateTileUpdaterForApplicationïŒïŒã¡ãœããã䜿çšããŠãã¹ã±ãžã¥ãŒã«ã«åŸã£ãŠã€ã³ã¹ããŒã«ãããŠãããã¹ãŠã®ã¿ã€ã«ã®ãªã¹ããååŸã§ããŸãã
var scheduledTiles = TileUpdateManager.CreateTileUpdaterForApplication();
èå¥åããšã«ããããã¿ã€ã«ã«ã¢ã¯ã»ã¹ã§ããŸã
var tile = scheduledTiles.FirstOrDefault(i => i.Id == "1");
ããã§ãããšãã°ãå¿
èŠã«å¿ããŠãã®ã¿ã€ã«ãåé€ã§ããŸãã
if(tile!=null) { TileUpdateManager.CreateTileUpdaterForApplication().RemoveFromSchedule(tile); }
4.ã¿ã€ã«ã®ãã¥ãŒã
WinRT APIã«ã¯ãæå€§5ã¿ã€ã«ã®ãã¥ãŒãèšå®ããæ©èœããããåšæçã«è¡šç€ºãããŸãã
å¿
èŠãªã®ã¯ããã¥ãŒãµããŒãã¡ãœãããæå¹ã«ããããšã ãã§ãã
TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);
ãããã£ãŠããã¥ãŒãç¡å¹ã«ããã«ã¯ãå€falseãæž¡ãå¿
èŠããããŸãã
ã¿ã€ã«ã«ã¯ããŸããŸãªãã¿ãŒã³ã䜿çšã§ããŸãããç°¡åã«ããããã«ãåããã¿ãŒã³ã®å°ããªäŸãèããŸãã
ã¿ã€ã«ãèšå®ããããã®å°ããªãã«ããŒã¡ãœãããäœæããŸãããã
private void SetTile(int value) { var tile = CreateNotification(String.Format(@"<tile> <visual> <binding template=""TileSquareBlock""> <text id=""1"">{0}</text> <text id=""2"">Degrees</text> </binding> <binding template=""TileWideText03""> <text id=""1"">{0} degrees in Moscow</text> </binding> </visual> </tile>",value)); TileUpdateManager.CreateTileUpdaterForApplication().Update(tile); }
次ã«ãåšæçã«è¡šç€ºãããããã€ãã®ã¿ã€ã«ã®ãã¥ãŒãèšå®ããŸãã
TileUpdateManager.CreateTileUpdaterForApplication().Clear(); TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true); SetTile(15); SetTile(25); SetTile(35);
ãããŠã3ã€ã®ã¿ã€ã«ãåšæçã«çžäºã«çœ®ãæããããŠããããšã確èªã§ããŸãã ãã¥ãŒãã¯ãªã¢ããã«ã¯Clearã¡ãœãããå¿
èŠã§ããããããªããšã次ã«ã³ãŒããå®è¡ãããšãã«ã2ã€ã®åäžã®ã¿ã€ã«ãæã€5ã€ã®ã¿ã€ã«ã®ã¹ã¿ãã¯ãã§ããŸããããã«ãããã¿ã€ã«ã¯å®æçã«åãã¿ã€ã«ã«çœ®ãæããããŸãã
ãã®æ¹æ³ã䜿çšããå Žåãã¹ã±ãžã¥ãŒã«ãããã¿ã€ã«ã¯ã¹ã¿ãã¯ã«ãããããã ãã§åã®ã¿ã€ã«ãšãã¹ãã³ããããããã¹ã±ãžã¥ãŒã«ãããã¿ã€ã«ã®åäœãããæ
éã«ç¢ºèªããå¿
èŠããããŸãã
5.ã¿ã€ã«ã®ã€ãã³ãïŒãããžïŒã®ã€ã³ãžã±ãŒã¿ãŒ
ã¿ã€ã«ïŒç¬ç«ããŠã©ã€ããŸãã¯ããã©ã«ãã®ã¿ã€ã«ïŒã«ã€ãã³ãã€ã³ãžã±ãŒã¿ãŒã衚瀺ããæ©èœããããŸãã ã€ãã³ãã€ã³ãžã±ãŒã¿ã¯å³äžé
ã«è¡šç€ºãããæ°åïŒ1ãã99ãããšãã°æªèªã¡ãã»ãŒãžã®æ°ïŒãŸãã¯ã°ãªãïŒã¢ããªã±ãŒã·ã§ã³ã®ç¶æ
ïŒã衚瀺ã§ããŸãã
ã€ãã³ãã€ã³ãžã±ãŒã¿ãŒã®è©³çްã«ã€ããŠã¯ããã·ã¢èªã®
MSDNããŒãžãã芧ãã ããã ããã§ã¯ãã€ãã³ãã€ã³ãžã±ãŒã¿ãŒã®å®è£
ãæ€èšããŸãã
ã€ã³ãžã±ãŒã¿ãŒãæäœããããã«ãAPIãTileUpdateManager APIãšã»ãŒåäžã®BadgeUpdateManagerããããŸãã
ã€ãã³ãã€ã³ãžã±ãŒã¿ãŒã«12çªã衚瀺ããæ¹æ³ãèããŠã¿ãŸãããããã®ããã«ã
MSDN />ããŒãžãã察å¿ãããã³ãã¬ãŒããååŸããŸã
var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(@"<badge value=""12""/>")); var badgeNotification = new BadgeNotification(xmlDocument); BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badgeNotification);
ããã§ãããã©ã«ãã¿ã€ã«ãšã©ã€ãã¿ã€ã«ã®äž¡æ¹ã§å€ã12ã®ã€ã³ãžã±ãŒã¿ãŒã確èªã§ããŸãã
ã°ãªãã衚瀺ããã«ã¯ãxmlã®å€12ãèå¥åã®1ã€ã§çœ®ãæããå¿
èŠããããŸãã ããšãã°ããæ³šæã
xmlDocument.LoadXml(@"<badge value=""attention""/>"));

ã¿ã€ã«ãšåæ§ã«ãã€ãã³ãã€ã³ãžã±ãŒã¿ãŒã®æéå¶éãèšå®ã§ããŸãã
badgeNotification.ExpirationTime = DateTimeOffset.UtcNow.AddSeconds(10);
ãããŠãåæ§ã«ãã€ã³ãžã±ãŒã¿ãŒãåé€ã§ããŸã
BadgeUpdateManager.CreateBadgeUpdaterForApplication().Clear();
6.ã¿ã€ã«ã®å®æçãªæŽæ°ïŒãªã¢ãŒããªãœãŒã¹ããïŒ
å€ãã®å ŽåããµãŒãã¹/ãµã€ãããã®ããŒã¿ã§ã¿ã€ã«ãæŽæ°ããå¿
èŠããããŸãã ããšãã°ã倩æ°ãæ¥äžã«å€åããå ŽåãããããçŸåšã®æ°æž©ã1æéã«1åæŽæ°ããå¿
èŠããããŸãã
ç°¡åã«ããããã«ãçŸåšã®ã¿ã€ã ã¿ã€ã«ãæäŸããæ°ããWebã¢ããªã±ãŒã·ã§ã³ãäœæããŸãã ãããASP.NETã¢ããªã±ãŒã·ã§ã³ã®å ŽåãçŸåšã®æå»ãå«ãxmlã¿ã€ã«ãè¿ãHttpHandlerã远å ããŸãã
public class TileHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/xml"; context.Response.Write(String.Format(@"<tile> <visual> <binding template=""TileSquareText02""> <text id=""1"">{0}</text> <text id=""2"">current time</text> </binding> <binding template=""TileWideText03""> <text id=""1"">Time: {0}</text> </binding> </visual> </tile> ",DateTime.Now.ToShortTimeString())); } public bool IsReusable {get { return false; }} }
ããã§ãããšãã°ããã³ãã©ãŒã
localhost ïŒ28457 / TileHandler.ashxã«ããå Žåããã®ã¢ãã¬ã¹ã䜿çšããŠéç¥ãåä¿¡ã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®æ¬¡ã®ã³ãŒãã¯ã30åããšã«ã¿ã€ã«ã®ãã§ãã¯ãšæŽæ°ãéå§ããŸãã
TileUpdateManager.CreateTileUpdaterForApplication().StartPeriodicUpdate(new Uri("http://localhost:28457/TileHandler.ashx"),PeriodicUpdateRecurrence.HalfHour);
ã¿ã€ã«ã®æŽæ°ã¯ããã«ã§ã¯ãªããæå®ããæéåŸã«éå§ã§ããŸãã ããšãã°ã次ã®ã³ãŒãã¯3æéåŸã«ã¿ã€ã«ã®ãã§ãã¯ãšæŽæ°ãéå§ããŸãã
TileUpdateManager.CreateTileUpdaterForApplication().StartPeriodicUpdate(new Uri("http://localhost:28457/TileHandler.ashx"), DateTimeOffset.UtcNow.AddHours(10), PeriodicUpdateRecurrence.HalfHour);
ããã§ãã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããšãã¯ã€ãã¿ã€ã«ã𿣿¹åœ¢ã¿ã€ã«ã«æ¬¡ã®ã¿ã€ã«ã衚瀺ãããŸãã
ã¿ã€ã«ã®ããã¥ãŒãã確ç«ããããšãã§ããŸãïŒãã¿ã€ã«ã®ãã¥ãŒãã»ã¯ã·ã§ã³ã§èª¬æïŒã æ§æã¯ã»ãŒåãã§ãããåäžã®Uriã®ä»£ããã«ãæå€§5ã€ã®èŠçŽ ã®Uriã®ã³ã¬ã¯ã·ã§ã³ãæå®ã§ããŸãã
ãŸãããã¥ãŒã®ãµããŒããæå¹ã«ããå¿
èŠããããŸãã
TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true); Uri[] uriCollection=new [] { new Uri("http://localhost:28457/TileHandler1.ashx"), new Uri("http://localhost:28457/TileHandler2.ashx"), new Uri("http://localhost:28457/TileHandler3.ashx"), new Uri("http://localhost:28457/TileHandler4.ashx"), new Uri("http://localhost:28457/TileHandler5.ashx"), }; TileUpdateManager.CreateTileUpdaterForApplication().StartPeriodicUpdateBatch(uriCollection,PeriodicUpdateRecurrence.HalfHour);
ã€ãã³ãèå¥åã¯åãæ¹æ³ã§æŽæ°ãããŸãã
ããšãã°ã
localhostã¢ãã¬ã¹ãããå ŽåïŒ28457 / BadgeHandler.ashxã¯/>ã®åœ¢åŒã®xmlãè¿ããŸã
次ã®ã³ãŒãã¯ã30åããšã«ã€ã³ãžã±ãŒã¿ãŒã¹ããŒã¿ã¹ãèŠæ±ããã³æŽæ°ããŸãã
BadgeUpdateManager.CreateBadgeUpdaterForApplication().StartPeriodicUpdate(new Uri("http://localhost:28457/TileBadgeHandler.ashx"),PeriodicUpdateRecurrence.HalfHour);
7.äºæ¬¡ã¿ã€ã«
ã»ã«ã³ããªã¿ã€ã«ã«ãããç¹å®ã®ãã©ã¡ãŒã¿ãŒã䜿çšããŠç¹å®ã®ããŒãžã§ã¢ããªã±ãŒã·ã§ã³ãå®è¡ã§ããŸãã ã»ã«ã³ããªã¿ã€ã«ã®æäœã®ããªã詳现ãªäŸã¯ã
MSDNã®äŸããããŠã³ããŒãã§ããŸãã ã»ã«ã³ããªã¿ã€ã«ã®äœ¿çšãæ€èšããŠãã ããã
7.1ã ã»ã«ã³ããªã¿ã€ã«ã®ä¿è·
ã»ã«ã³ããªã¿ã€ã«ã®ä¿®æ£ã¯éåžžã«ç°¡åã§ãã
ããšãã°ãã¿ã€ã«ãåºå®ããããã®ãã¿ã³ãããå Žåãã¿ã€ã«ãåºå®ããããã®ãã¿ã³ã«æ¬¡ã®ãã³ãã©ãèšè¿°ããŸãïŒç°¡åã«ããããã«ãããã©ã«ãã®ã¿ã€ã«ãšåãããŽã䜿çšããŸãïŒã
private async void PinToStart_Click(object sender, RoutedEventArgs e) { SecondaryTile secondaryTile = new SecondaryTile() { TileId = "MyTileId", ShortName = "Tile short name", DisplayName = "Tile display name", Arguments = "MyTileArgument", TileOptions = TileOptions.ShowNameOnLogo | TileOptions.ShowNameOnWideLogo, Logo = new Uri("ms-appx:///assets/SquareTileLogo.png"), WideLogo = new Uri("ms-appx:///assets/WideTileLogo.png"), }; bool isPinned = await secondaryTile.RequestCreateAsync(); }
TileIdã¯ã¿ã€ã«ã®äžæã®èå¥åã§ãããåŸã§ç¹å®ã®ã¿ã€ã«ãæäœããããã«äœ¿çšãããŸãïŒåé€ãæŽæ°ãéå§ãªã©ïŒ
ã¡ã€ã³ã¿ã€ã«ã«ã¯ãäžæã®èå¥åãAppãã䜿çšãããŸãã ãã®èå¥åã¯äºçŽæžã¿ãšèŠãªãããšãã§ãããã®ãããªèå¥åã§ã¿ã€ã«ãä¿®æ£ããŠãæ©èœããŸããïŒæããã«ãã®ãããªã¿ã€ã«ã¯æ¢ã«ååšããããïŒã ãã®ãããªèå¥åãæã€ã¿ã€ã«ãåé€ããããšãããšãéå§ç»é¢ãšããã°ã©ã ã®ãªã¹ããããªã³ã¯ã倱ãããã»ã«ã³ããªã¿ã€ã«ã§ããã«äœæ¥ããå¯èœæ§ãå®å
šã«ããªããªããŸãããæããã«ããã®ãã°ã¯ãããããä¿®æ£ãããã§ããããããããã«ããŠããèå¥åãšããŠãAppãã䜿çšããªãããšã匷ããå§ãããŸãã
ãã¿ã³ãã¯ãªãã¯ãããšãã¿ã€ã«ãä¿®æ£ããããã®æ¬¡ã®ãã€ã¢ãã°ããã¯ã¹ã衚瀺ãããŸãã

7. 2.ã»ã«ã³ããªã¿ã€ã«ããã®ã¢ããªã±ãŒã·ã§ã³ã®ã¢ã¯ãã£ãå
ã»ã«ã³ããªã¿ã€ã«ãäœæããããã»ã«ã³ããªã¿ã€ã«ã«ããã¢ããªã±ãŒã·ã§ã³ã®ã¢ã¯ãã£ãåãåŠçããå¿
èŠããããŸãã
ãããè¡ãã«ã¯ãAppXaml.csã¡ãœããã§ãargsã¹ã¿ãŒãã¢ããåŒæ°ãåŠçã§ããŸãã ãã®ãã©ã¡ãŒã¿ãŒããTileIdã¿ã€ã«èå¥åãšåŒæ°ãååŸã§ããŸãã ç°¡åã«ããããã«ãã¿ã€ã«ã«ãã£ãŠã¢ã¯ãã£ãåããããšãã«ã¢ããªã±ãŒã·ã§ã³ã®ç¹å¥ãªããŒãžãéãã·ããªãªãå®è£
ããŸãã
ãããè¡ãã«ã¯ãOnLaunchã¡ãœããå
ã®åããã¡ã€ã«App.xaml.csã§ãã¡ãœããã®æåã«å¥ã®ããŒãžã«åãæ¿ããããã®ã³ãŒãã远å ããŸãïŒã»ã«ã³ããªã¿ã€ã«ããã¢ã¯ãã£ãåãããå ŽåïŒã
protected override void OnLaunched(LaunchActivatedEventArgs args) { var tileId= args.TileId; if (tileId == "MyTileId") { if(Window.Current.Content ==null) { Window.Current.Content=new Frame(); } var secondaryTileArgument = args.Arguments; ((Frame)Window.Current.Content).Navigate(typeof(SecondaryTilePage), secondaryTileArgument); Window.Current.Activate(); return; } ⊠}
ããã§ãã¢ããªã±ãŒã·ã§ã³ãã»ã«ã³ããªã¿ã€ã«ããã¢ã¯ãã£ãåããããšãã¿ã€ã«ãå«ãããŒãžãžã®é·ç§»ãå®è¡ãããã¿ã€ã«ãä¿®æ£ãããšãã«äœ¿çšãããå€ãåŒæ°ãšããŠæž¡ãããŸãã
äžèšã®ã³ãŒãã«ã¯éå€§ãªæ¬ ç¹ããããŸãã ã»ã«ã³ããªã¿ã€ã«ã«ãã£ãŠã¢ããªã±ãŒã·ã§ã³ãã¢ã¯ãã£ãã«ããç¹å¥ãªããŒãžã«åãæ¿ããåŸãã¡ã€ã³ã¿ã€ã«ããã¢ããªã±ãŒã·ã§ã³ãèµ·åããããšãããšãåã³ã»ã«ã³ããªã¿ã€ã«ã®ããŒãžã«ç§»åããŸãã ãã®åé¡ã«ã¯å€ãã®è§£æ±ºçããããŸãã 1ã€ã®è§£æ±ºçã¯ãã¢ããªã±ãŒã·ã§ã³ãã»ã«ã³ããªã¿ã€ã«ã«ãã£ãŠã¢ã¯ãã£ãåãããããšãæãåºããæ¬¡ã«ãã©ã€ããªã¿ã€ã«ã«ãã£ãŠã¢ã¯ãã£ãåãããšãã«ãåã®ããŒãžãååšããå Žåã¯åã®ããŒãžã«ç§»åããŠã¿ãããšã§ãã ãã以å€ã®å Žåã¯ãããã©ã«ãã®ã·ããªãªã«åŸã£ãŠã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŸãã
7. 3.åºå®ã¿ã€ã«ã®åé€
ãŠãŒã¶ãŒã¯ãã¿ã€ã«ã³ã³ããã¹ãã¡ãã¥ãŒããç¬ç«ããŠãéå§ç»é¢ããã¿ã€ã«ã®åºå®ãè§£é€ã§ããŸãã å¿
èŠã«å¿ããŠãã¿ã€ã«ã®ãªãªãŒã¹ãèªåã§ãªã¯ãšã¹ãã§ããŸãã ãŠãŒã¶ãŒã¯ãã¿ã€ã«ã®åºå®è§£é€ãæç€ºçã«ç¢ºèªããå¿
èŠããããŸãã
[åºå®è§£é€]ãã¿ã³ãšãã³ãã©ãŒããã¿ã³ã«è¿œå ããŸãã
private async void UnPinFromStart_Click(object sender, RoutedEventArgs e) { if(Windows.UI.StartScreen.SecondaryTile.Exists("MyTileId")) { SecondaryTile secondaryTile = new SecondaryTile("MyTileId"); bool unpinned = await secondaryTile.RequestDeleteAsync(); } }
SecondaryTile.ExistsïŒïŒã¡ãœããã䜿çšãããšããã¹ã¯ãããäžã®åºå®ã¿ã€ã«ã確èªã§ããŸãã
ãã®ã³ãŒããå®è¡ãããšãããŠãŒã¶ãŒã¯ã»ã«ã³ããªã¿ã€ã«ãåé€ããããšã確èªããå¿
èŠããããŸãããã®åŸãã¿ã€ã«ãåé€ãããŸã

7. 4.ã»ã«ã³ããªã¿ã€ã«ã®ã埩掻ã
ã»ã«ã³ããªã¿ã€ã«ãã©ã€ãã«ããããšãã§ããŸãã ã»ã«ã³ããªã¿ã€ã«ã®APIã¯ããã©ã€ããªã¿ã€ã«ãšåãã§ãã
ã»ã«ã³ããªã¿ã€ã«ã䜿çšããã«ã¯ãTileUpdateManager.CreateTileUpdaterForSecondaryTileïŒtileIdïŒã¡ãœããã䜿çšããŸãã
ã»ã«ã³ããªã¿ã€ã«ã®åæ§ã®äŸ
var tile = CreateNotification(@"<tile> <visual> <binding template=""TileSquareBlock""> <text id=""1"">25</text> <text id=""2"">Degrees</text> </binding> <binding template=""TileWideText03""> <text id=""1"">25 degrees in Moscow</text> </binding> </visual> </tile>"); TileUpdateManager.CreateTileUpdaterForSecondaryTile("MyTileId").Update(tile);
8.ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãšããã·ã¥éç¥ã«ããã©ã€ãã¿ã€ã«ç®¡ç
BackgroundTaskããã³PushNotificationãããã¯ã¯ãããããåå¥ã®èšäºã«å€ããŸãã
ããã§ã¯ãäž¡æ¹ã®ãããã¯ã®ã¿ã€ã«ãæäœããåçãæ€èšããŸãã
8.1ã ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯
ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®äœæã®ç°¡åãªç޹ä»ã¯ã
MSDNã«ãããŸããOnCompletedã¡ãœããã§ã¯ãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãããªã¬ãŒããããšãLiveTileãèšå®ã§ããŸã
void OnCompleted(BackgroundTaskRegistration sender, BackgroundTaskCompletedEventArgs args) { var tile = CreateNotification(String.Format(@"<tile> <visual> <binding template=""TileSquareText04""> <text id=""1"">{0}</text> <text id=""2""></text> </binding> <binding template=""TileSquareText02""> <text id=""1"">{0}</text> <text id=""2""></text> </binding> </visual> </tile>", DateTime.Now.ToString("hh:mm:ss"))); TileUpdateManager.CreateTileUpdaterForApplication().Update(tile); }
8. 2.ããã·ã¥éç¥
Windows 8ã§ã¯ãããã·ã¥éç¥ãããå®å
šã«ãªããæäœãå°ãé£ãããªããŸããããµãŒããŒããWNSãµãŒããŒã«ãã°ã€ã³ããŠããã·ã¥éç¥ãéä¿¡ããæ¹æ³ã¯ãMSDNããŒãžã§èª¬æãããŠããŸããææžã®æåŸã«ã宿ããã³ãŒããèšèŒãããŠããŸããããã§ã¯ãã¡ãœããã·ã°ããã£ã®ã¿ã瀺ããŸããpublic string PostToWnsïŒstring secretãstring sidãstring uriãstring xmlãstring type =â wns / toastâïŒ{}ã¿ã€ããšããŠãå€ãwns / tileããxmlå€ãšããŠæž¡ãããã³ãã¬ãŒããæž¡ããŸãã¿ã€ã«ãäŸïŒ
string xml = @"<tile> <visual> <binding template=""TileSquareText04""> <text id=""1"">Tile text1</text> <text id=""2"">Tile text2</text> </binding> <binding template=""TileSquareText02""> <text id=""1"">Tile text1</text> <text id=""2"">Tile text2</text> </binding> </visual> </tile>";
å¯äžã®æ³šæç¹-msdnããŒãžã§æå®ããã¡ãœããã¯ãContent-TypeãšContentLengthã远å ãããŸã§æ©èœããŸããã§ããã request.Headers.Add("X-WNS-Type", type); request.Headers.Add("Authorization", String.Format("Bearer {0}", accessToken.AccessToken)); request.ContentType = "text/xml"; request.ContentLength = xml.Length;
ããã¥ã¡ã³ãã®æåŸã«ã¯ãWNSãµãŒããŒã§ã®ãã£ãã«ãšæ¿èªã®èª¬æãäœæããŠéãããã®ãªã³ã¯ããããŸããsecretããã³sidãã©ã¡ãŒã¿ãŒã¯æ¬¡ã®åœ¢åŒã®å€ã§ããsidïŒ "ms-appïŒ// s-1-23-2-3112458577-1770873644-3250801218-3829720502-2556658560-167841413-2364691272";ç§å¯ïŒãDcQWqb7eL7oIwVCr8yIOo-aQQRplPDL3ã;å®éãã¿ã€ã«APIãæäŸããã®ã¯ããã ãã§ããPSèšäºãæžãéã«è²Žéãªã¢ããã€ã¹ããã«ãããµããŒããããŠãããhabrazer Stas Pavlov stasusãšSergey Urusov petrishkoã«æè¬ããŸãã