【问题标题】:Send UWP Raw Notification from backend in C#在 C# 中从后端发送 UWP 原始通知
【发布时间】: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”一起使用(仅提及重要的库)。

【问题讨论】:

    标签: c# azure xamarin push-notification uwp


    【解决方案1】:

    “wns/raw”通知的内容类型必须是“application/octet-stream”

    此消息意味着您需要指定“wns/raw”通知的内容类型。我查看了WindowsNotification 文档,它有一个Notification.ContentType 属性,请尝试指定该属性的值。

    【讨论】:

    • 感谢您的回复。但不幸的是,添加 notification.ContentType = @"application/octet-stream"; 后,异常仍然存在:“'wns/raw' 通知的内容类型必须是 'application/octet-stream'”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    相关资源
    最近更新 更多