Windows 8应用程序实时磁贴未使用Visual Studio在Application App上更新

时间:2012-11-20 20:22:28

标签: windows-8 notifications microsoft-metro winjs

我刚刚在Visual Studio中创建了一个“导航应用程序”项目,我正在尝试让实时磁贴实际更新。这就是我在default.js中的内容:

(function () {
  "use strict";

  WinJS.Binding.optimizeBindingReferences = true;

  var app = WinJS.Application;
  var activation = Windows.ApplicationModel.Activation;
  var nav = WinJS.Navigation;

  // init notifications to live tile
  var notif = Windows.UI.Notifications;
  var tileUpdater = notif.TileUpdateManager.createTileUpdaterForApplication();
  var recurrence = notif.PeriodicUpdateRecurrence.halfHour;
  var updateTileUrl = "http://bakersdozen13.lfchosting.com/img.xml";
  var url = new Windows.Foundation.Uri(updateTileUrl);
  tileUpdater.startPeriodicUpdate(url, recurrence);

  app.addEventListener("activated", function (args) { ... }); // the js that came w/ the project template

  ...

})();

当我点击F5运行它,然后检查我的磁贴上的磁贴启动仪表板Windows 8屏幕,它只有我的徽标,没有别的。我错过了什么?我是否需要将通知片段放在其他位置?

Ps,这是从更新uri返回的xml:

<tile>
  <visual>
    <binding template="TileWideSmallImageAndText03">
      <image id="1" src="http://cdn.godvine.com/uploads/2012/11/image_1353288711_abandoned_church_1.jpg" alt="img alt text here"/>
      <text id="1">Dying Man Gets a Miracle in Abandoned Church</text>
    </binding>
    <binding template="TileSquarePeekImageAndText04">
      <image id="1" src="http://cdn.godvine.com/uploads/2012/11/image_1353288711_abandoned_church_1.jpg" alt="img alt text here"/>
      <text id="1">Dying Man Gets a Miracle in Abandoned Church</text>
    </binding>
  </visual>
</tile>

2 个答案:

答案 0 :(得分:0)

一切都很好看。我在SDK中的Push和Periodic Notifications Sample中尝试了你的URL,并且tile更新很顺利,因此XML没有任何问题。然后我做了你的步骤:新的Nav应用程序项目,粘贴在代码中,并在VS中运行。将图块显示在开始屏幕上需要几秒钟,但一旦完成,图块更新就会按预期显示。

简而言之,我尝试它时效果很好。

您可以尝试将代码放在激活的处理程序中。可以想象,VS如何部署应用程序与创建磁贴的时间之间存在一些竞争条件。您可以在VS的Build菜单上尝试Deploy命令,该命令应该单独安装应用程序以尝试运行它。然后从磁贴启动它,在应用程序启动后,返回并观看“开始”屏幕。

请注意,默认应用项目中将忽略XML中的宽磁贴更新,因为它没有宽的静态磁贴图像。也就是说,您必须在清单中包含一个宽图块图像,以便启用实时宽图块,否则将忽略XML有效负载的那些部分。

答案 1 :(得分:0)

我在使用Visual Studio开发和部署的应用程序时遇到了类似的问题。这个应用程序最初没有实时图块。当我后来添加实时图块的代码时,图块没有更新。

我的解决方案是卸载应用程序(通过开始屏幕上的应用栏)并再次部署它。那段时间一切正常,没有任何代码修改。