【问题标题】:Microsoft Band Web Tile Not RefreshingMicrosoft Band Web 磁贴不刷新
【发布时间】:2016-01-05 17:24:25
【问题描述】:

这篇文章类似于Microsoft Band Web Tile not Updating,但标记为该问题答案的回复并没有真正解决我的问题,所以我想我会开始一个新的帖子。

我最近购买了一个 Band 2,并试图设置一个 Web 磁贴,该磁贴将从提供 JSON 格式数据(不是 rss 提要)的服务中提取数据。因此,我使用 5 步创作工具创建了一个单页非提要磁贴。当我第一次将磁贴部署到我的乐队时,它成功地轮询了服务并显示了数据;但是,从那时起,即使设置了刷新间隔(默认为 30 分钟),Web 磁贴上显示的数据也没有更新。

被调用的服务是一个 ASP.Net Web API 服务。它正在设置以下与缓存相关的标头:

缓存控制:无缓存 Pragma:无缓存 过期:-1 最后修改: 电子标签:

如果我查看该站点的 HTTP 日志,我可以看到我的服务端点大约每 30 分钟从我的手环/电话呼叫的位置,并且服务器在每次呼叫时都会以 200 OK 响应进行响应 - 我是在事务的服务器端没有看到 304 Not Modified 响应。

我的手环已与 Android 设备 (Samsung GS5) 配对。我也尝试过与 iPhone 6 配对,结果相同。带上的其他磁贴似乎工作正常(即 MS Health 应用程序附带的标准磁贴)。作为配对/重新配对的一部分,我已经进行了两次出厂重置,但这似乎没有帮助。我也尝试过重新启动两部手机(配对时)。这也无济于事。

我错过了什么?

作为参考,这里是 web tile 的 manifest.json 文件包含的内容(一些数据点的占位符:

{
  "manifestVersion": 1,
  "name": "<Name Here>",
  "description": "<Description here>",
  "version": 1,
  "versionString": "1",
  "author": "<Author Here>",
  "organization": "",
  "contactEmail": "",
  "tileIcon": {
    "46": "icons/tileIcon.png"
  },
  "icons": {},
  "refreshIntervalMinutes": 30,
  "resources": [
    {
      "url": "<URL Here>",
      "style": "Simple",
      "content": {
        "_1_bg": "BG",
        "_1_datestring": "DateString",
        "_1_trend": "Trend",
        "_1_direction": "Direction"
      }
    }
  ],
  "pages": [
    {
      "layout": "MSBand_MetricsWithIcons",
      "condition": "true",
      "textBindings": [
        {
          "elementId": "12",
          "value": "BG: {{_1_bg}}"
        },
        {
          "elementId": "22",
          "value": "{{_1_datestring}}"
        },
        {
          "elementId": "32",
          "value": "Trend: {{_1_trend}}, {{_1_direction}}"
        }
      ]
    }
  ],
  "notifications": [
    {
      "condition": "{{_1_bg}} >= 250",
      "title": "HIGH BG: {{_1_bg}}",
      "body": "{{_1_datestring}}"
    },
    {
      "condition": "{{_1_bg}} <= 80",
      "title": "Low BG: {{_1_bg}}",
      "body": "{{_1_datestring}}"
    },
    {
      "condition": "{{_1_bg}} <= 55",
      "title": "REALLY LOW: {{_1_bg}}",
      "body": "{{_1_datestring}}"
    }
  ]
}

【问题讨论】:

    标签: microsoft-band


    【解决方案1】:

    你能提供资源的 URL 吗?如果是这样,我可以查看您的服务器响应,看看为什么磁贴没有刷新。

    更好的是,你能分享一下 webtile,我可以试试看它为什么不刷新。您可以在https://developer.microsofthealth.com/WebTile/ 构建您的 WebTile 并选择提交。在这里回复它的名字,我去看看。

    顺便说一下,下面是我们在简单磁贴上处理刷新的方式:

    1. 如果 Etag 在最后一个响应中,则将其与下一个请求一起使用,让服务器决定是否提供新内容。
    2. 如果未提供 Etag,则查找 Last-Modified 并在可用时使用它。
    3. 否则,处理下载的数据并发送到磁贴。

    因此,如果您的服务器响应中有 Etag 或 Last-Modified,那么我们将使用它来发送未来的请求,这可能会导致您的问题。在这种情况下,您需要确保 Etag 和 Last-Modified 没有在您的服务器响应中发送。

    【讨论】:

    • 在我提交时,与 Last-Modified 和 ETag 标头相关的帖子的一部分似乎被修改了——服务实际上是在为这些设置值; Last-Modified 日期在每次调用服务时都会重置。 ETag 是一个 Guid(转换为字符串),在每次调用时都会重新生成,因此理论上不应与之前的请求相同。
    • 服务的初始版本没有提供 Last-Modified 或 ETag 值。我在没有它们的情况下进行了一些初始测试后添加了它们,并且没有在乐队上刷新数据。这是服务的 URL:sfowlerbanddata.azurewebsites.net/api/sgv/latest
    • 我已经多次轮询sfowlerbanddata.azurewebsites.net/api/sgv/latest,我看到值在变化,并且磁贴也在变化。你的瓷砖现在更新了吗?我还创建了一个示例磁贴,就像您使用 Web 创作工具创建的磁贴一样,它正在按预期在 iOS 上进行更新。
    • Joe:我刚刚使用 Fiddler 应用程序 (telerik.com/fiddler) 在 50.63.66.52:4957 查询您的服务器,它正在返回更新的数据。您应该打开一个带有指向您的 webtile 链接的新问题,以解释您遇到的问题。
    • 不,此时它也没有更新。我想我要在手机上卸载/重新安装 MS Health,将手环重置为出厂设置,然后重新尝试……我使用您在帖子中提到的 developer.microsofthealth.com/WebTile 创建了 Web 磁贴;它没有什么特别之处。
    【解决方案2】:

    我能想到的一些事情:

    • 在进行更新时,您是否让 WebTile 上的磁贴保持打开状态?如果是这样,那么当新数据进入时,乐队的某些 FW 版本中的磁贴不会更新,请关闭磁贴并在同步后打开它。
    • 您可以通过点击 Microsoft Health 应用内左侧导航栏左上角的同步图标来测试磁贴同步的频率超过 30 分钟。

    之后,如果您仍有问题,请从 Microsoft Health 应用程序内部发送反馈。通过左侧导航访问,在设置下方,使用“帮助和反馈”。

    在报告反馈时,如果您可以附上有助于我们测试您遇到问题的 webtile 的 webtile。

    【讨论】:

    • 感谢您的帮助,马克...我还有一个未更新的磁贴,但我们感谢您尝试提供帮助...回复您的最新观点:不,我不不要保持瓷砖打开。我访问磁贴并检查更新并始终退出。此外,我尝试使用同步图标,它也不会刷新磁贴。我已经按照建议使用 MS Health 应用程序提交了反馈,尽管我没有看到附加磁贴的方法(我可以做一个图像,但就是这样)。提交后有没有办法编辑它?
    • 提交后无法编辑,抱歉。使用 WebTile Authoring 工具末尾的“Publish WebTile”选项提交 WebTile。在作者中包含您的姓名,我会看看。
    • 马克,再次感谢... 抱歉延迟回复,但我已经出城,暂时无法处理此问题。我刚刚将我的 Web 磁贴上传到画廊...我不确定我是否喜欢这样做,但它就是这样...如何从画廊中删除一个磁贴上传后?我不一定希望这个人在那里闲逛。
    • 好的,给画廊几天更新后,我确认我的瓷砖在画廊里(简单的BG是名字)。我最近将我的手机更新为最新的可用更新(AT&T 上的三星 SG5),将我的手环重置为出厂设置,卸载并重新安装 Microsoft Health,重新添加手环,然后前往画廊并从那里安装磁贴.初次安装后,我收到提示没有数据的消息,所以我通过 MS Health 手动同步。那做了一个更新。我等了将近一个小时没有自动更新,尝试手动更新,仍然没有更新到信息显示。
    • 在这一点上,我想我已经准备好放弃 Band 实验并回到我的 Pebble 了,这很令人沮丧,因为我通常非常支持微软。我已经做了 20 年的开发人员,遇到这样的事情本来应该很简单但不能正常工作是非常令人沮丧的。
    【解决方案3】:

    我在这里分享挫败感。我也有完全相同的问题。我也做了 20 年的开发人员。我现在对这个问题的回答是,在使用 JSON 和/或 Android 手机时可能存在错误。我试图与 Microsoft 获得答案和讨论,但没有任何运气。我的问题是Web Tile works once but never refreshes

    【讨论】:

    • 好吧,在看到 Mark Thistle 在您的帖子上的回复表明他们已经发现问题并正在将修复程序放在下一次健康应用程序刷新中后,我打算吞下我的挫败感......不幸的是,刷新并没有解决我的 webtile 问题。非常令人失望...有人想要一个几乎没有使用过的 Band 2 吗?
    猜你喜欢
    • 2015-05-27
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多