我使用https://developer.microsoftband.com/WebTile为Microsoft Band 2创建了一个简单的Web Tile。安装瓷砖没有问题,最初显示正确的值,但它从未更新。我添加了一个通知,以查看是否发生了任何事情,并且当手机刷新内容时通知会被触发,但即使数据在Feed中发生更改,数据也不会更新。
略微消毒的饲料:
<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>
我尝试在平铺上更新的唯一数据是<description>
值。
<link>
和<title>
一开始没有变化,但我添加了日期时间(以刻度表示),希望说服应用程序对变更采取行动,但没有运气。
我正在使用Android手机购买Microsoft Health App。
答案 0 :(得分:2)
如果Web服务器在其HTTP响应中提供ETag值,则Web磁贴将在其下一个HTTP请求中提供该值&#34; If-None-Match&#34;标题,以避免再次下载相同的内容。您使用的HTTP服务器是否支持ETag,如果是,那么每次Feed内容更改时服务器上的值都会更改?
Simnilarly,&#34; Last-Modified&#34;将在下一个请求中使用响应头(如果由服务器提供)来设置&#34; If-Modified-Since&#34;头。因此,如果服务器支持此标题,则每次Feed内容更改时都必须设置Last-Modified日期。
如果网络图块是一个源图块(即,每个新项目的一个页面显示在图像上),则会检查该项目的其他项目是否与之前看到的项目相匹配。对于RSS提要,匹配使用由&#34; guid&#34;标记的值。或&#34; pubDate&#34;如果可用,否则为整个项目的哈希值。
由于您的Feed示例没有&#34; guid&#34;或&#34; pubDate&#34;项目的标签,应该应用所有项目哈希。因此,描述值的变化与之前的8个项目描述之一不匹配,应该使其被视为新的。
如果您使用Feed数据创建了Feed图块,并且第一次Feed包含描述为&#34; 1&#34;然后应该在乐队上创建一个页面,显示&#34; 1&#34;。然后在下一次更新时,Feed包含一个描述为&#34; 2&#34;然后乐队应该得到一个新页面,显示&#34; 2&#34;。
如果您创建了非Feed页面(例如只有一页的图块),那么Band上的页面应该反映最近同步的Web数据(只要ETag和Last-如果服务器支持修改,则设置正确。
对于后台更新,&#34; refreshIntervalMinutes&#34;在进行新的更新尝试之前,清单中指定的内容也必须从上次更新开始。但是,如果您在MS Health应用程序中强制使用该选项进行同步,那么&#34; refreshIntervalMinutes&#34;将被忽略。