C# 无法从webapi向IOS发送推送通知?
您好,我正在webapi中开发web应用程序并创建推送通知。下面是我面临的问题。每当我写下面的代码,我就能够发送消息C# 无法从webapi向IOS发送推送通知?,c#,.net,asp.net-web-api,C#,.net,Asp.net Web Api,您好,我正在webapi中开发web应用程序并创建推送通知。下面是我面临的问题。每当我写下面的代码,我就能够发送消息 String payload; string strmsgbody = ""; int totunreadmsg = 20; strmsgbody = "Hey Ashish"; Request.SaveAs(System.Web.HttpContext.Current.
String payload;
string strmsgbody = "";
int totunreadmsg = 20;
strmsgbody = "Hey Ashish";
Request.SaveAs(System.Web.HttpContext.Current.Server.MapPath("APNSduringdevice.txt"), true);
payload = "{\"aps\":{\"alert\":\"" + strmsgbody + "\",\"badge\":" + totunreadmsg.ToString() + ",\"sound\":\"mailsent.wav\"},\"acme1\":\"bar\",\"acme2\":42}";
每当我用下面的代码替换strmsgbody时
string IOSmessage = "XYZ Financing" + RequestType;
string IOScontentTitle = RequestType + " status updated.";
string IOSpostData =
"{\"data\": {\"contentTitle\":\"" + IOScontentTitle + "\", " +
"\"message\": \"" + status + "\"}}";
在调试器中,我可以看到下面为上面的代码生成的代码
"{\"aps\":{\"alert\":\"{\"data\": {\"contentTitle\":\"Lease status updated.\", \"message\": \"CompletedStatusmessage\"}}\",\"badge\":20,\"sound\":\"mailsent.wav\"},\"acme1\":\"bar\",\"acme2\":42}"
我无法发送消息。我可以知道我在上面的代码中遗漏了什么吗?任何帮助都将不胜感激。多谢各位 在iOS设备上获取推送通知的有效负载应为
{
"aps" : {
"alert" : {
"title" : "Lease status updated.",
"body" : "CompletedStatusmessage"
},
"badge" : 20,
"sound" : "mailsent.wav "
},
"acme1" : "bar",
"acme2" : 42
}
你要送什么
"{
"aps ":{
" alert ":" {
"data": {
"contentTitle": "Lease status updated.",
"message": "CompletedStatusmessage"
}
}
",
" badge ":20,
" sound ":"mailsent.wav "},
" acme1 ":" bar ",
" acme2 ":42
}"
在iOS设备上获取推送通知的有效负载应为
{
"aps" : {
"alert" : {
"title" : "Lease status updated.",
"body" : "CompletedStatusmessage"
},
"badge" : 20,
"sound" : "mailsent.wav "
},
"acme1" : "bar",
"acme2" : 42
}
你要送什么
"{
"aps ":{
" alert ":" {
"data": {
"contentTitle": "Lease status updated.",
"message": "CompletedStatusmessage"
}
}
",
" badge ":20,
" sound ":"mailsent.wav "},
" acme1 ":" bar ",
" acme2 ":42
}"
strmsgbody是未转义的json。如果我接受调试器的输出,我将得到
“警报”:“{”数据“{”contentTitle“:“租约状态已更新”,“消息“:“CompletedStatusmessage”}>,
。感谢您的评论。我应该在上面的代码中更改什么?我对苹果的通知有点模糊,因为我们通过第三方发送我们的通知,但我认为您需要将alert\:\“+strmsgbody+”,
更改为alert\:“+strmsgbody+”,
。老实说,我建议只使用C#中的类构建数据,然后序列化为JSON。如果我接受调试器的输出,我将得到“警报”:“{”数据“{”contentTitle“:“租约状态已更新”,“消息“:“CompletedStatusmessage”}>,
。感谢您的评论。我应该在上面的代码中更改什么?我对苹果的通知有点模糊,因为我们通过第三方发送我们的通知,但我认为您需要将alert\:\“+strmsgbody+”,
更改为alert\:“+strmsgbody+”,
。老实说,我建议只使用C#中的类构建数据,然后序列化为JSON。感谢您的评论swetansh kumar。你能给我一个以上正确格式的示例代码吗?嗨,斯维坦什·库马尔。这是我的。有效载荷=“{\'aps\”:{\'alert\”:\“+strmsgbody+”,“badge\”:“+totunreadmsg.ToString()+”,“sound\”:“mailsent.wav\”,“acme1\”:“bar\”,“acme2\”:42}”@NiranjangodOLE您的负载包含作为字符串的徽章。请将其设置为整数。将徽章值更改为int将使有效负载正确。感谢您的评论swetansh kumar。你能给我一个以上正确格式的示例代码吗?嗨,斯维坦什·库马尔。这是我的。有效载荷=“{\'aps\”:{\'alert\”:\“+strmsgbody+”,“badge\”:“+totunreadmsg.ToString()+”,“sound\”:“mailsent.wav\”,“acme1\”:“bar\”,“acme2\”:42}”@NiranjangodOLE您的负载包含作为字符串的徽章。请将其设置为整数。将徽章值更改为int将使有效负载正确。