天天看點

Windows Phone 7 推送通知(Push Notification)

使用推送通知的好處

1、節省使用者的電池電量。

2、你可以通過推送通知來告知你的使用者在程式中發生了一些有趣的事,即使程式沒有運作。

推送通知的過程
Windows Phone 7 推送通知(Push Notification)

  使用者在手機中首次運作程式時,應用程式會調用微軟的推送通知服務,請求一個用于通信的定制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 通知,它通常在使用者目前螢幕之上疊加顯示.例如,天氣應用程式可能希望将惡劣天氣提醒作為toast通知顯示.如果使用者決定點選toast 通知,應用程式就會啟動并執行其他動作。雲服務能夠控制 toast 通知的标題和副标題。 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)

繼續閱讀