1

我需要配置Azure通知中心爲不同的移動平臺發送模板通知。對於Windows Phone 8,它應該是一個能夠導航到具有查詢參數的特定頁面的敬酒。這些參數必須可配置以及烤麪包頭和信息。這裏是模板:帶有有效負載的Windows Phone Toast通知模板

"<?xml version=\"1.0\" encoding=\"utf-8\"?>" + 
"<wp:Notification xmlns:wp=\"WPNotification\">" + 
    "<wp:Toast>" + 
     "<wp:Text1>$(caption)</wp:Text1>" + 
     "<wp:Text2>$(content)</wp:Text2>" + 
     "<wp:Param>/Views/TargetPage.xaml?p1=$(v1)&amp;p2=$(v2)</wp:Param>"+ 
    "</wp:Toast> " + 
"</wp:Notification>" 

現在是關於這個問題。發送測試通知時,Toast的標頭和內容與預期的一樣,但由於某種原因,有效負載不會更新。因此,我收到兩個查詢參數p1:「$(v1)」,p2:「$(v2)」。這似乎是一些有效載荷編碼問題,或者通知中心在應用模板時根本不考慮有效載荷,但這兩個想法聽起來都是錯誤的。你有沒有遇到類似的問題?只是一個評論,在錯誤的參數名稱的情況下,值將替換爲「」,所以它不是我的情況。

+0

你應該在這個問題您的服務器代碼。這很可能是問題出在那裏(你可能沒有用實際值替換模板的v1和v2參數)。 – Eran

+0

@Eran服務器部分完全由Azure Notification Hub控制,我猜MS不會讓我調試他們的代碼:) –

回答

1

不幸的是,你不能像你那樣在模板中混合屬性。在使用連接時,必須明確添加表達式評估運算符' {}'。

你的情況:

"<?xml version=\"1.0\" encoding=\"utf-8\"?>" + 
"<wp:Notification xmlns:wp=\"WPNotification\">" + 
    "<wp:Toast>" + 
     "<wp:Text1>$(caption)</wp:Text1>" + 
     "<wp:Text2>$(content)</wp:Text2>" + 
     "<wp:Param>{'/Views/TargetPage.xaml?p1=' + $(v1) + '&amp;p2=' + $(v2)}</wp:Param>"+ 
    "</wp:Toast> " + 
"</wp:Notification>" 

MSDN文章:http://msdn.microsoft.com/en-us/library/dn530748.aspx