所需的行爲是攔截應用程序中的原始通知(不需要後臺任務或用戶放棄其寶貴的後臺任務點之一)。根據http://msdn.microsoft.com/en-us/library/windows/apps/xaml/JJ709907(v=win.10).aspx的示例代碼,我創建了一個事件處理程序來攔截原始通知。在我創建的一個應用程序中,使用Azure移動服務通過WNS發送通知事件處理程序被觸發並且效果很好。如何獲取PushNotificationChannel.PushNotificationReceived事件處理程序來攔截通知?
但在第二個應用程序,它不工作。通知似乎很好。也就是說,當我的Web服務讓WNS發送一個Toast通知時,它就會顯示出來。此外,我可以調試/跟蹤原始通知,並且它們似乎也被創建得很好。有我缺少的設置嗎?
我通過Fiddler看到請求和結果,但也許只是因爲我在本地運行MVC 4.0 Web API項目?要求是這樣的:
{Channel URI: https://bn1.notify.windows.com/?token=AgYAAACuGgtx...
TTL: -
Cache: no
Request for status: no
Tag:
Priority: Normal
Token retry count: 0
really
}
然後我可以跟蹤這個(通過WNSRecipe/NotificationsExtensions代碼是這樣的WAT樣品的部分全部完成)。我得到:
{Sent WNS notification: Received
Channel URI: https://bn1.notify.windows.com/?token=AgYAAACuGgtx...
Notification status: Received
Status code: OK
Device connection status: NotApplicable
Error description:
Debug Trace: BN1WNS2011828
MessageId: 3FA318CE5C48E9CF
Timestamp: 3/8/2013 9:23:18 PM -07:00
- REQUEST ------------------------------------------------------------------
X-WNS-Type : wns/raw
Content-Type : application/octet-stream
Authorization : Bearer EgAaAQMAAAAEgAAACoAAx1d3DqT9jZxJdOFIUJ9...
Host : bn1.notify.windows.com
Content-Length : 6
really
- RESPONSE -----------------------------------------------------------------
X-WNS-NOTIFICATIONSTATUS : received
X-WNS-MSG-ID : 3FA318CE5C48E9CF
X-WNS-DEBUG-TRACE : BN1WNS2011828
Content-Length : 0
Date : Sat, 09 Mar 2013 04:23:11 GMT
}
而結果:
{Channel URI: https://bn1.notify.windows.com/?token=AgYAAACuGgtx...
Notification status: Received
Status code: OK
Device connection status: NotApplicable
Error description:
Debug Trace: BN1WNS2011828
MessageId: 3FA318CE5C48E9CF
Timestamp: 3/8/2013 9:23:18 PM -07:00
}
所以我想通知被髮送。
更新:我已返回並重新檢查設置,並在應用中添加了測試按鈕以發佈我的請求。 (所以我知道該應用程序是積極的,毫無疑問)。我在我的通知請求中添加了RequestForStatus = true
,並在「事件查看器」中獲取「設備連接狀態:連接」以及新的日誌條目集。
當你說調試/跟蹤原始通知似乎是**創建**罰款,是你看到他們被交付給客戶(通過說Fiddler),而沒有采取行動? – 2013-03-09 00:38:51
@ Jim O'Niel我爲此添加了更多細節。我不確定它們是否被傳送到Windows8/Win8應用程序。我只是看到他們,因爲我在本地運行MVC應用程序。有沒有辦法讓Fiddler直接攔截通知?謝謝,順便說一下,你的博客文章有幫助。第二次想到 – Stonetip 2013-03-09 03:48:02
,跳過提琴手。在事件查看器>應用程序和服務日誌> Microsoft> Windows>推送通知 - 平臺是哪裏(我相信)你應該看到什麼到你的機器。我並不完全熟悉那裏顯示的內容,但可能值得一看,看看您是否看到錯誤或表示收到了該消息(包括工作和非工作情況下) – 2013-03-09 04:26:45