在 C# 中从后端发送 UWP 原始通知
Posted
技术标签:
【中文标题】在 C# 中从后端发送 UWP 原始通知【英文标题】:Send UWP Raw Notification from backend in C# 【发布时间】:2019-01-30 23:52:56 【问题描述】:我被一个看起来很简单的问题困住了。 一点背景知识:我正在开发一个带有 Xamarin 的应用程序,它是 C# 中的一个后端,并使用 Azure 作为推送通知中心。
我的目标是通过 Azure 通知中心从后端向我的 UWP 应用发送原始通知。徽章、平铺或 toast 通知在我的项目中不是选项,所以我被原始通知卡住了。
应用程序在 Win10 机器上运行并成功注册到通知中心。测试从 Azure 发送通知(任何一种)都有效!
后端也在同一网络中的 Win10 机器上运行。应用程序和后端通过 REST 进行通信(也可以工作)。
现在的问题: 我尝试使用以下代码从后端向 Notification-Hub 发送原始通知:
var message = "Test";
Notification notification = new WindowsNotification( message );
notification.Headers.Add( "X-WNS-Type", @"wns/raw" );
try
return await _notificationHub.SendNotificationAsync( notification, tag ); ;
catch( Exception e )
System.Diagnostics.Debug.WriteLine( $"===> Notification message \nTO tag could not be sent !!" );
System.Diagnostics.Debug.WriteLine( $"e.Message" );
我想,这应该是发送原始通知的基本代码。 但我得到一个例外说明:
“wns/raw”通知的内容类型必须是“application/octet-stream”。TrackingId:xxx,TimeStamp:8/24/2018 1:07:20 PM
所以我加了一行
notification.Headers.Add( "Content-Type", @"application/octet-stream" );
在“try”-语句之上。 现在我得到了例外
错误的标题名称。确保请求标头与 HttpRequestMessage 一起使用,响应标头与 HttpResponseMessage 一起使用,内容标头与 HttpContent 对象一起使用。
...我不知道如何正确设置标题。
有没有人可以给我一个有用的建议......
提前谢谢
附:将 VS2017 与“Microsoft.AspNetCore.All 2.0.7”和“Microsoft.Azure.NotificationHubs 2.0.0-preview2”一起使用(仅提及重要的库)。
【问题讨论】:
【参考方案1】:“wns/raw”通知的内容类型必须是“application/octet-stream”
此消息意味着您需要指定“wns/raw”通知的内容类型。我查看了WindowsNotification 文档,它有一个Notification.ContentType
属性,请尝试指定该属性的值。
【讨论】:
感谢您的回复。但不幸的是,添加notification.ContentType = @"application/octet-stream";
后,异常仍然存在:“'wns/raw' 通知的内容类型必须是 'application/octet-stream'”以上是关于在 C# 中从后端发送 UWP 原始通知的主要内容,如果未能解决你的问题,请参考以下文章