0

我正在使用Microsoft.Azure.NotificationHubs SDK v1.0.8与Azure通知集线器集成并发送推送。虽然iOS和Android工作正常,但我的Windows Phone在前段时间停止工作。有有效载荷使用:无法使用Azure.NotificationHubs SDK发送Windows Phone推送通知

<?xml version="1.0" encoding="utf-8"?> 
<wp:Notification xmlns:wp="WPNotification"> 
    <wp:Toast> 
    <wp:Text1>Notification Title</wp:Text1> 
    <wp:Text2>Notification Text!</wp:Text2> 
    <wp:Param>?param1=value1&param2=value2</wp:Param> 
    </wp:Toast> 
</wp:Notification> 

这里是我得到的错误:

System.ArgumentException:有效载荷不接受XML格式。 第一个节点应该是平铺/吐司。如果要发送原始通知,请在标题中将“X-NotificationClass”设置为“3”。在 Microsoft.Azure.NotificationHubs.RegistrationSDKHelper.DetectMpnsTemplateRegistationType(字符串 体,字符串ERRORMSG)

我试图直接从蔚蓝的门户网站或Visual Studio发送的推送 - 它工作正常。所以这个问题在我猜的SDK中。

This guide展示了如何使用常规的网络请求和特殊的头被设置为发送敬酒

sendNotificationRequest.Headers.Add("X-WindowsPhone-Target", "toast"); 
sendNotificationRequest.Headers.Add("X-NotificationClass", "2"); 

随着Azure的SDK我也没有办法设置这些头发送相同的通知,只能使用下面的方法送我的有效载荷,给了我上述错误:

await Hub.SendMpnsNativeNotificationAsync(payload, userIdTag); 

出了什么问题在我的设置吗?

回答

1

的问题是在这条线

<wp:Param>?param1=value1&param2=value2</wp:Param>

&值应该被编码,XML可以通过在Azure通知集线器SDK正确解析,所以我把它改成

<wp:Param>?param1=value1&amp;param2=value2</wp:Param>