0

我刚刚在 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>
4

2 回答 2

0

一切看起来都很好。我在 SDK 中的推送和定期通知示例中尝试了您的 URL,并且磁贴更新顺利进行,因此 XML 没有任何问题。然后我做了你的步骤:新的导航应用程序项目,粘贴在代码中,并在 VS 中运行。磁贴出现在开始屏幕上需要几秒钟,但一旦出现,磁贴更新就会按预期出现。

简而言之,当我尝试它时,它工作得很好。

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

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

于 2012-11-20T20:54:55.263 回答
0

我使用 Visual Studio 开发和部署的应用程序遇到了类似的问题。这个应用程序一开始没有动态磁贴。当我后来添加动态磁贴的代码时,磁贴没有更新。

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

于 2012-11-23T20:56:22.183 回答