当前位置: 首页 > 知识库问答 >
问题:

如何在UWP应用程序中使用azure notification hub标签进行推送消息

子车煌
2023-03-14

我想发送推送消息到特定渠道的应用程序,如“en-us”和“fr-fr”,以本地化推送通知。

首先,我学习了本教程,所有这些教程都起到了作用:https://docs.microsoft.com/en-us/Azure/notification-hubs/notification-hubs-windows-store-dotnet-get-start-wns-push-notification

那里的工作登记是:

var result = await hub.RegisterNativeAsync(channel.Uri);

我能从这个混乱的uwp代码中提取出的是这一行:

var hub = new NotificationHub("AppName", "endpoint");
            
            const string templateBodyWNS = "<toast><visual><binding template=\"ToastText01\"><text id=\"1\">$(messageParam)</text></binding></visual></toast>";

            var result = await hub.RegisterTemplateAsync(channel.Uri, templateBodyWNS, "simpleWNSTemplateExample", new string[] { "en-us" });

结果也给了我一个有效的注册。

这导致应用程序获得通知(它不过滤“en-us”)。然后我尝试在“发送到标签表达式”中加入“en-us”:

NotificationHubClient Hub = NotificationHubClient.CreateClientFromConnectionString(endpoint,  name);
            string toast = @"<?xml version='1.0' encoding='utf-8'?>
  <toast>
  <visual><binding template='ToastText01'>
     <text id='1'> Test message </text>
          </binding>
          </visual>
          </toast>
          ";
      var result = await     Hub.SendWindowsNativeNotificationAsync(toast);
   

共有1个答案

朱阳曜
2023-03-14

好吧,我想出来了,这里有同样问题的人:

首先,其他人可能会对此感到困惑,我们需要理解定义推送模板的概念与FCM(用于Android)的工作方式是不同的。在FCM中,您定义推送消息服务器端的布局和内容。

在UWP中,当使用标记时会发生在客户端。在设计toast时,可以将变量放入其中,然后由服务器端填充。

var hub = new NotificationHub("Hubname", "endpoint");
string toast = @"<toast>
<visual><binding template='ToastGeneric'>
<text id='1'>$(Title)</text>
<text id='2'>$(Message)</text>

<text placement='attribution'>via SMS</text>
</binding>
</visual>
</toast>
";
var result = await hub.RegisterTemplateAsync(channel.Uri, toast, localizedWNSTemplateExample", new string[] { "myTag" });
NotificationHubClient Hub = NotificationHubClient.CreateClientFromConnectionString(endpoint, name);
Dictionary<string, string> templateParams = new Dictionary<string, string>();
templateParams["Title"] = "Title here";
templateParams["Message"] = "Message here";
await Hub.SendTemplateNotificationAsync(templateParams, "myTag");
 类似资料:
  • 我正在使用JGit克隆存储库,对文件进行一些更改,提交,标记它,然后将其推送到远程存储库。 我已经使用JGit编写了代码,它将克隆存储库,在文件中进行一些更改,然后提交更改,创建新标记,并推送提交和标记。 推送后,我希望远程存储库显示我的更改和新标签,但是在远程存储库中显示的是带有提交的更改,但是标签不可见。它显示“无标签”。

  • 我正在开发一个Android应用程序,它使用NFC来注册设备间的触摸。我正在使用两个Nexus 7进行测试。 理想的用例是让应用程序在一个设备上处于活动状态,而不是在另一个设备上处于活动状态。主动设备推送一个包含一些数据的记录的NDefMessage,供被动设备应用处理。被动设备将包含一些数据的记录传回主动应用。 我在清单中设置了以下意图过滤器: 在我的主要活动中,我在onCreate中设置了以下

  • 我正在使用Firebase云消息在Unity android应用程序中进行消息推送,我得到了一个小图标很好,但缺少右侧应用程序图标。请在此处查看附加的image.enter图像描述我正在寻找解决方案,但没有找到。如果有解决方案,请分享。提前谢谢!

  • 我们已经编写了一个文档管理系统,并希望使用web客户端对文档进行数字签名。我们的Java客户机应用程序已经能够应用和检查数字签名,但我们希望在web客户机中也能进行签名。这是用GWT编写的,因此在客户端运行时,它是一个JavaScript应用程序。 我们不希望创建一个Java applet并将其下载到客户端并执行它。我们希望使用browser安全设备或browser API来签署文档。我们还希望保

  • 当我的数据库记录在服务器上更新时,它会通过FCM向Android应用程序用户发送推送通知。通知已发送,但设备上的徽章计数未更新。如何设置更改徽章应用程序图标的通知?

  • 我在Spring消息中使用Stomp over SockJS。我正在尝试在连接新用户时向所有登录用户发送消息。首先,这是我的听众: 我的WebSocket配置 我的JS配置 我在这里的问题是,我的template.convert和发送()在应用程序监听器中不工作。但是,如果我把它放在一个带有@Message映射注释的Controller方法中,它将工作,并且我将有一个控制台日志客户端。 所以我的问