共用方式為


定期通知概觀

定期通知,也稱為輪詢通知,是以固定間隔從雲端服務下載內容來更新磁磚和標章。 若要使用定期通知,用戶端應用程式程式碼需提供兩項資訊:

  • 用於 Windows 輪詢您的應用程式磚或徽章更新的網頁位置的統一資源識別符 (URI)
  • 應該如何決定輪詢該 URI 的頻率

定期通知可以讓您的應用程式以最少的雲端服務和用戶端的投入來取得即時磚更新。 定期通知是一個很好的傳遞方法,可將相同的內容傳送給廣泛的受眾。

請注意,您可以下載 Windows 8.1 的推播和定期通知範例,並在您的 Windows 10 應用程式中重複使用其原始程式碼,藉此進一步了解。

 

運作方式

定期通知會要求您的應用程式裝載雲端服務。 服務會由已安裝應用程式的所有使用者定期輪詢。 在每個輪詢間隔,例如每小時一次,Windows 會將 HTTP GET 要求傳送至 URI,下載回應中提供的磁磚或徽章內容(XML格式),並在應用程式的磁磚上顯示這些內容。

請注意,定期更新無法與快顯通知搭配使用。 快顯通知最適合透過排程 或推播 通知來傳遞。

URI 位置和 XML 內容

任何有效的 HTTP 或 HTTPS 網址都可以作為輪詢的 URI。

雲端伺服器的回應包含下載的內容。 從 URI 傳回的內容必須符合徽章 XML 結構描述規格,且必須經過 UTF-8 編碼。 您可以使用已定義的 HTTP 標頭來指定通知的到期時間 或標籤

投票行為

調用以下其中一個方法來開始輪詢:

當您呼叫其中一個方法時,系統會立即輪詢 URI,並使用接收到的內容更新磚或徽章。 在此初始輪詢之後,Windows 會持續以指定的間隔進行更新作業。 輪詢會繼續執行,除非您明確停止它(使用 TileUpdater.StopPeriodicUpdate)、您的應用程式被卸載,或是次要磚的話則移除磚。 否則,即使您的應用程式從未再次啟動,Windows 仍會繼續檢查您的磚或徽章是否有更新。

重現間隔

您可以將周期間隔指定為上述方法的參數。 請注意,雖然 Windows 會進離依要求進行輪詢,但間隔並不準確。 要求的輪詢間隔最多可以延遲 15 分鐘,由 Windows 自行決定。

開始時間

您可以選擇性地指定在一天中的特定時間開始輪詢。 應用程式每天只會變更其磚內容一次,請將這點納入考量。 在這種情況下,我們建議您在接近更新雲端服務的時間進行檢查。 例如,如果每日購物網站在上午 8 點發布當天的優惠,請在上午 8 點之後不久查詢新的促銷資訊。

如果您提供開始時間,則方法首次被呼叫時會立即查詢內容。 然後,定期輪詢會在提供的開始時間後的 15 分鐘內開始。

自動重試行為

只有當裝置在線時,才會對 URI 進行輪詢。 如果網路可用,但因任何原因無法連接到 URI,則會略過這次的輪詢間隔,並在下一個間隔再次輪詢 URI。 如果裝置在達到輪詢間隔時處於關閉、睡眠或休眠狀態,當裝置從關閉或睡眠狀態傳回時,就會輪詢 URI。

處理應用程式更新

如果您發行應用程式更新並變更了輪詢 URI,應新增一個每日 時間觸發的背景工作,以新的 URI 呼叫 StartPeriodicUpdate。這樣可以確保您的動態磚使用新的 URI。 否則,如果使用者收到您的應用程式更新但未啟動應用程式,其磁貼仍然會使用舊的 URI,如果該 URI 現在無效,或傳回的承載參考了不再存在的本機影像,這些磁貼可能無法顯示。

磁貼和徽章通知的過期或失效

根據預設,定期的磚塊和徽章通知會在下載後三天到期。 當通知到期時,內容會從徽章、磚或佇列中移除,且不再對使用者顯示。 最佳作法是在所有的動態磚和徽章通知上設置明確的到期時間,選擇一個對您的應用程式或通知有意義的時間,以確保內容不會持續超過其相關時間。 明確到期時間對於已定義存留期的內容而言很重要。 它同時確保在您的雲端服務無法聯繫,或使用者長時間中斷網路連線的情況下,會移除過時的內容。

您的雲端服務會藉由在回應承載中包含 X-WNS-Expires HTTP 標頭,來設定通知的到期日期和時間。 X-WNS-Expires HTTP 標頭符合 HTTP 日期格式。 如需詳細資訊,請參閱 StartPeriodicUpdateStartPeriodicUpdateBatch

例如,在股市活躍的交易日期間,您可以將股票價格更新的到期時間設定為輪詢間隔的兩倍(例如,如果您每半小時輪詢一次,則在收到更新後設定為一小時)。 另一個範例是,新聞應用程式可能會判斷有一天是每日新聞磚更新的適當到期時間。

通知佇列中的定期通知

您可以使用定期圖塊更新搭配 通知循環。 根據預設,[開始] 畫面上的磚會顯示單一通知的內容,直到新通知將它取代。 當您啟用循環顯示時,佇列中最多會維持五個通知,而圖塊會在這些通知之間循環顯示。

如果佇列已達到五個通知的容量,則下一則新通知會取代佇列中最舊的通知。 不過,藉由在您的通知上使用標籤,您可以影響佇列的替換政策。 標籤是特定於應用程式的不區分大小寫的字串,最多包含 16 個字母和數字的字元,並在回應負載中的 X-WNS-Tag HTTP 標頭中指定。 Windows 會將傳入通知的標籤與佇列中已有的所有通知的標籤進行比較。 如果找到相符標籤,新的通知會取代佇列中的相同標記的通知。 如果找不到符合條件的通知,則會套用預設取代規則,新通知將取代佇列中最舊的通知。

您可以使用通知佇列和標籤來實作各種不同的通知情境。 例如,股票應用程式可傳送五則通知,而每則通知分別與不同的股票相關,且都會加上股票名稱標籤。 這可防止佇列包含相同股票的兩個通知,其中較舊的已過期。

如需詳細資訊,請參閱 使用通知佇列

啟用通知佇列

若要實作通知佇列,請先為您的磁貼啟用佇列(請參閱 如何使用通知佇列搭配本機通知)。 在應用程式存續期間,佇列的啟用只需要執行一次,然而每次啟動應用程式時執行這個操作也不會造成任何影響。

一次查詢多個通知

每個通知都必須有一個唯一的 URI,以便 Windows 為您的磁貼下載。 使用 StartPeriodicUpdateBatch 方法即可一次提供最多五個 URI 來搭配通知佇列使用。 每個 URI 都會輪詢單一通知承載,同時或接近同一時間。 每個輪詢的 URI 都可以傳回自己的有效期和標記值。