使用推播通知的好處
1、節省使用者的電池電量。
2、你可以通過推播通知來告知你的使用者在程式中發生了一些有趣的事,即使程式沒有運行。
推播通知的過程
使用者在手機中首次運行程式時,應用程式會調用微軟的推播通知服務,請求一個用於通訊的定製URI。
當在你的Web Service中激發了一個事件時,你應該向那個URI傳遞資訊(附帶一個特定的負載),然後推播通知服務會以活動瓷磚更新,多士(Toast)通知或者程式中真實資料的方式將資料發送到使用者的手機中。
從推播通知服務(Push Notification Service)中擷取定製的URI
我們得使用Microsoft.Phone.Notification程式集,從推播通知服務中(PNS)擷取一個定製的URI。首先,我得建立一個HttpNotificationChannel。它將自動與PNS通訊(在另一個線程中),並且還得通過一個事件來捕獲服務返回的內容。
HttpNotificationChannel是一個在Push Notification服務和Push Client之間建立通知通道的類,它用來建立一個raw,tile和 toast通知的訂閱。該通道的創造流程是這樣的:如果通道已經存在,則用戶端應用程式應嘗試重新開啟它。試圖重新建立已存在的通道將導致異常。如果通道沒有開啟,訂閱通道事件,並嘗試開啟通道。一旦通道開啟它會觸發ChannelUriUpdated事件。此事件可能向用戶端發送成功建立通道的訊號。現有的通道可以根據名稱找到,成功找到通道的情況下,通道將被重新啟用,並可以在應用程式中使用。整個過程是非同步。
一旦你有了URI,就可以在Web Service中儲存它了。Web Service會初始化將要發送到你手機上的資訊,我們有3種方法來實現:瓷磚(Tile)通知,多士(Toast)通知和原生通知。
原生通知(Raw Notification)- 原生通知用於裝置中真正在啟動並執行程式。它允許你在使用者使用時即時更新使用者介面。
多士通知(Toast Notification)– 無論程式是否在運行都會收到這個訊息,但在程式運行時彈出多士訊息可能會有點兒討人厭。
雲端服務能夠產生一種特殊的推播通知,稱為 快顯通知,它通常在使用者當前螢幕之上疊加顯示.例如,天氣應用程式可能希望將惡劣天氣提醒作為toast通知顯示.如果使用者決定點擊快顯通知,應用程式就會啟動並執行其他動作。雲端服務能夠控制 快顯通知的標題和副標題。 快顯通知也會顯示包含在布署包裡的應用程式圖示。
瓷磚通知(Tile Notification)– 如果你的程式被釘在了開始介面中,你可以用瓷磚通知來更新瓷磚。你可以改變背景圖片以及一個0-99的整數。
Tile是應用程式或者其內容在手機快速啟動區的一個可視的,動態呈現.例如天氣應用程式可能選擇使用tile顯示使用者本地時間和氣候情況.因為雲端服務可能在任何時間變動tile的外觀,這種機制可以用來將資訊持續不斷地傳達給使用者.每個手機應用程式都關聯到一個單獨的tile ,但是使用者可以控制哪些tile附加到 Quick Launch 區。
雲端服務能夠控制tile的背景圖片, 計數器 (或者 徽章)和標題屬性.這些屬性使用Windows Phone Developer Tools來配置。Tile的動畫和聲音屬性由平台設定而不是由應用程式來控制。例如,如果平台設定為用動畫和嘟嘟聲來響應任何tile更新 ,這對於任何 tile都是有效。
Tile的背景圖片可以參考一個本地資源,是應用程式部署的一部分,或雲資源。通過引用在雲中的資源,應用程式得以動態更新tile的背景映像。這使得需要提前進行背景影像處理,然後才顯示出來的情境也能夠得以應用。在大多數情況下,應用程式套件組合應包含所有需要的tile背景圖片,因此這是提高效能和電池壽命最好的解決方案。
Toast 和 Tile 通知是Windows Phone 7平台系統定義的通知。和RAW 通知不同,所有的應用程式都可以建立他們自己的負載格式並相應地解析它們。
通知的類型
http://msdn.microsoft.com/en-us/library/ff941124(v=VS.92).aspx
向Windows Phone推播通知
http://msdn.microsoft.com/en-us/library/ff402545(VS.92).aspx
教程:適應於Windows Phone 7的動態區塊推播通知(Tile Push Notification)
http://msdn.microsoft.com/zh-cn/gg615432.aspx
微軟的對推播通知的官方教程文檔和執行個體原始碼(實驗文檔 原始碼)