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