Microsoft Band Web Tile 未更新
Microsoft Band Web Tile not Updating
我使用 https://developer.microsoftband.com/WebTile 为 Microsoft Band 2 创建了一个简单的 Web Tile。瓷砖安装没有问题,最初显示正确的值,但它从未更新过。我添加了一个通知以查看是否发生了任何事情,并且当 phone 刷新内容时确实会触发通知,但即使提要中的数据发生变化,数据也永远不会更新。
稍微消毒的饲料:
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>Title</title>
<link>http://website.com/band</link>
<description>Band Tile</description>
<language>en-US</language>
<copyright>2015 Company</copyright>
<lastBuildDate>Sun, 01 Nov 2015 19:25:21 Z</lastBuildDate>
<item>
<link>http://company.com/band/635820027213013187</link>
<title>635820027212075628</title>
<description>2</description>
</item>
</channel>
</rss>
我试图在 Tile 上更新的唯一数据是 <description>
值。
<link>
和 <title>
一开始并没有改变,但我添加了日期时间(以滴答为单位),希望说服应用程序对更改采取行动,但没有运气。
我正在为 Microsoft 健康应用程序使用 Android phone。
如果网络服务器在其 HTTP 响应中提供 ETag 值,则网络磁贴将在其下一个 HTTP 请求中提供该值 "If-None-Match" header 以避免再次下载相同的内容。您使用的 HTTP 服务器是否支持 ETag,如果支持,每次提要内容更改时服务器上的值都会更改吗?
同样,"Last-Modified" 响应 header 将在下一个请求中使用(如果服务器提供)来设置 "If-Modified-Since" header。因此,如果服务器支持此 header,则每次提要内容更改时设置 Last-Modified 日期很重要。
如果 Web 磁贴是提要磁贴(即提要的每个新项目都会在 Band 上显示一个页面),那么将额外检查提要的项目以查看它们是否与之前看到的项目相匹配。对于 RSS 提要,匹配使用由 "guid" 或 "pubDate" 标记的值(如果可用),否则使用整个项目的哈希值。
由于您的 Feed 示例没有 "guid" 或 "pubDate" 项目标签,所有项目散列应该适用。因此,将描述值更改为与前 8 个项目描述之一不匹配的内容应该会导致它被视为新的。
如果您使用自己的供稿数据创建了供稿磁贴,并且供稿第一次包含描述为“1”的项目,则应在显示该“1”的 Band 上创建一个页面。然后在下一次更新时,当提要包含一个描述为“2”的项目时,乐队应该会得到一个显示“2”的新页面。
如果您创建了 non-feed 磁贴(例如只有一个页面的磁贴),则 Band 上的页面应反映最近同步的网络数据(只要如果服务器支持,ETag 和 Last-Modified 设置正确。
对于后台更新,清单中指定的 "refreshIntervalMinutes" 也必须从上次更新开始,然后才能进行新的更新尝试。但是,如果您在 MS Health 应用程序中使用该选项强制同步,则 "refreshIntervalMinutes" 将被忽略。
我使用 https://developer.microsoftband.com/WebTile 为 Microsoft Band 2 创建了一个简单的 Web Tile。瓷砖安装没有问题,最初显示正确的值,但它从未更新过。我添加了一个通知以查看是否发生了任何事情,并且当 phone 刷新内容时确实会触发通知,但即使提要中的数据发生变化,数据也永远不会更新。
稍微消毒的饲料:
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>Title</title>
<link>http://website.com/band</link>
<description>Band Tile</description>
<language>en-US</language>
<copyright>2015 Company</copyright>
<lastBuildDate>Sun, 01 Nov 2015 19:25:21 Z</lastBuildDate>
<item>
<link>http://company.com/band/635820027213013187</link>
<title>635820027212075628</title>
<description>2</description>
</item>
</channel>
</rss>
我试图在 Tile 上更新的唯一数据是 <description>
值。
<link>
和 <title>
一开始并没有改变,但我添加了日期时间(以滴答为单位),希望说服应用程序对更改采取行动,但没有运气。
我正在为 Microsoft 健康应用程序使用 Android phone。
如果网络服务器在其 HTTP 响应中提供 ETag 值,则网络磁贴将在其下一个 HTTP 请求中提供该值 "If-None-Match" header 以避免再次下载相同的内容。您使用的 HTTP 服务器是否支持 ETag,如果支持,每次提要内容更改时服务器上的值都会更改吗?
同样,"Last-Modified" 响应 header 将在下一个请求中使用(如果服务器提供)来设置 "If-Modified-Since" header。因此,如果服务器支持此 header,则每次提要内容更改时设置 Last-Modified 日期很重要。
如果 Web 磁贴是提要磁贴(即提要的每个新项目都会在 Band 上显示一个页面),那么将额外检查提要的项目以查看它们是否与之前看到的项目相匹配。对于 RSS 提要,匹配使用由 "guid" 或 "pubDate" 标记的值(如果可用),否则使用整个项目的哈希值。
由于您的 Feed 示例没有 "guid" 或 "pubDate" 项目标签,所有项目散列应该适用。因此,将描述值更改为与前 8 个项目描述之一不匹配的内容应该会导致它被视为新的。
如果您使用自己的供稿数据创建了供稿磁贴,并且供稿第一次包含描述为“1”的项目,则应在显示该“1”的 Band 上创建一个页面。然后在下一次更新时,当提要包含一个描述为“2”的项目时,乐队应该会得到一个显示“2”的新页面。
如果您创建了 non-feed 磁贴(例如只有一个页面的磁贴),则 Band 上的页面应反映最近同步的网络数据(只要如果服务器支持,ETag 和 Last-Modified 设置正确。
对于后台更新,清单中指定的 "refreshIntervalMinutes" 也必须从上次更新开始,然后才能进行新的更新尝试。但是,如果您在 MS Health 应用程序中使用该选项强制同步,则 "refreshIntervalMinutes" 将被忽略。