`
thecloud
  • 浏览: 879784 次
文章分类
社区版块
存档分类
最新评论

微软云计算技术Windows Azure专题(一):如何利用Service Bus向Windows商店应用推送消息

 
阅读更多

本文介绍了如何使用Windows Azure的Service Bus通知中心发送推送通知Windows商店应用程序。

先来明确一下大体上要做哪些步骤:

1.申请一个Windows应用商店的应用。(每个应用都有自己的身份识别标识,不然Windows Azure也不知道要将应用推送给谁)

2.在Windows Azure中创建一个Service Bus,然后在次Service Bus下创建一个通知中心。(其实推送可以用Mobile Service下的推送,但是建在Service Bus下是有好处的。具体原因后续讲解)

3.将第一步申请的应用通过代码连接到通知中心。

4.通过后台程序向通知中心发送推送,然后你的Windows商店应用就可以收到推送了。(哈哈,这一步是很神奇的,你可以用控制台程序、Winform程序、WPF程序等等发送推送。当然也可以用Cloud Service里边的服务向通知中心添加推送等等,方法多了去了)

下边开始说正事了。

第一步:申请Window应用商店的应用。

其实这个有点小儿科了,搞微软技术开发的谁都会,就简单的说一下。

1.先起个名字

2.建一个空项目

3.将应用和商店连接起来

4.然后获取你的应用的惟一身份标识和客户端密钥

第二部:在Windows Azure中创建一个Service Bus,并在该Service Bus中创建一个通知中心

1.点击最下方的新建按钮

2.我们就建立一个名为BestAppRecommendation的名称空间

3.再建立一个名为bestapp的通知中心
4.将刚才的程序包SID和客户端密钥配置好

第三部:将自己的应用通过代码连接到通知中心

1.首先要通过NugGet添加引用WindowsAzure.Messaging.Managed

2.要用到的引用有

usingWindows.Networking.PushNotifications;

usingMicrosoft.WindowsAzure.Messaging;

usingWindows.UI.Popups;

3.在App.xaml.cs中添加如下代码

private async void InitNotificationsAsync()
{
    var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();


var hub = new NotificationHub("<hub name>", "<connection string with listen access>");               
var result = await hub.RegisterNativeAsync(channel.Uri);


// Displays the registration ID so you know it was successful
if (result.RegistrationId != null)
{
    var dialog = new MessageDialog("Registration successful: " + result.RegistrationId);
    dialog.Commands.Add(new UICommand("OK"));
    await dialog.ShowAsync();
}


}

4.在App.cs的OnLanched()函数中添加InitNotificationsAsync();

5.不要忘了让你的程序支持Toast推送


第四步:通过后台程序向通知中心发送消息,然后你的Windows商店应用就可以获得推送了

1.建立一个控制台程序

2.通过NuGet获得WindowsAzure.ServiceBus的引用

3.添加usingMicrosoft.ServiceBus.Notifications;引用

4.在控制台程序的中添加如下函数

private static async void SendNotificationAsync()
{
    NotificationHubClient hub = NotificationHubClient.CreateClientFromConnectionString("<connection string with full access>", "<hub name>");
    var toast = @"<toast><visual><binding template=""ToastText01""><text id=""1"">Hello from a .NET App!</text></binding></visual></toast>";
    await hub.SendWindowsNativeNotificationAsync(toast);
}

5.在控制台程序的Main函数中添加

SendNotificationAsync();

Console.ReadLine();

6.运行控制台程序,然后所有安装了刚才创建的Windows商店应用的电脑都会弹出如下推送消息

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics