2015-11-01 31 views
0

我使用https://developer.microsoftband.com/WebTile爲Microsoft Band 2創建了一個簡單的Web Tile。該瓷磚安裝沒有問題,最初顯示正確的值,但從未更新。我添加了一個通知,以查看是否發生了任何事情,並且手機刷新內容時通知會被觸發,但即使Feed中的數據發生更改,數據也不會更新。Microsoft Band Web Tile不更新

輕微消毒飼料:

<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>起初沒有變化,但我添加了日期時間(以蜱),希望說服應用程序根據變化採取行動,但沒有運氣。

我正在爲Microsoft Health應用程序使用Android手機。

回答

2

如果Web服務器提供在其HTTP響應一個ETag值,則網絡瓦片將提供該值在其下的HTTP請求「如果 - 無 - 匹配」頭,以避免再次下載相同的內容。您正在使用的HTTP服務器是否支持ETag,並且如果是,每當訂閱源內容更改時服務器上的值將被更改?

Simnilarly中,「上次修改」響應報頭將被使用(如果由服務器提供的)中下一個請求以設置「如果-Modified-Since的」標頭。所以,如果服務器支持這個頭文件,那麼每次提交內容改變時都要設置Last-Modified日期。

如果Web瓷磚是飼料瓦(即頁面顯示在樂隊的飼料的每個新項目)然後另外的飼料項目將進行檢查,以查看它們是否匹配先前看到的項目。對於RSS訂閱源,匹配使用由「guid」或「pubDate」標記的值(如果可用),否則使用整個項目的散列值。

由於feed例如沒有「GUID」或項目「pubdate的」標籤中,所有項目散列應該適用。因此,描述值的變化與前面8個項目描述中的任何一個不匹配,都會導致它被看作是新的。

如果您在使用Feed數據創建的源互動,並在第一時間將Feed中有「1」的描述一個項目,然後在頁面上應顯示出「1」的樂隊創建的。然後在下一次更新時,如果Feed中包含描述爲「2」的項目,則Band應該會顯示一個顯示「2」的新頁面。

如果您已經創建了非Feed頁面(例如只有一個頁面的頁面),那麼頁面上的頁面應該反映最近同步的Web數據(只要ETag和Last如果它們受服務器支持,則修改設置正確)。

爲背景更新,在「refreshIntervalMinutes」清單中指定必須也由上次更新經過由更新一個新的嘗試之前。但是,如果您在MS Health應用程序中使用該選項強制進行同步,則「refreshIntervalMinutes」將被忽略。

+0

我試着將ETag,Last-Modified和no-cache添加到標題中,但在獲取第一個值後該tile仍不會更新。這裏是標題: 'Cache-Control:no-cache Content-Encoding:gzip Content-Length:136 Content-Type:application/json;字符集= UTF-8 日期:星期四,2015年11月12日2點43分23秒GMT 的ETag:635828930038482426 到期日:-1 上次修改:星期四,2015年11月12日2點43分23秒GMT 附註:無緩存 服務器:Microsoft-IIS/8.0 有所不同:接受編碼 X-ASPNET-版本:4.0.30319 X-AspNetMvc-版本:5.2 X供電,通過:ASP.NET' 我缺少什麼? –