.net平台推送ios消息的实现方法

所属分类: 网络编程 / ASP.NET 阅读数: 343
收藏 0 赞 0 分享

本文实例讲述了.net平台推送ios消息的实现方法。分享给大家供大家参考。

具体实现步骤如下:

1、ios应用程序中允许向客户推送消息

2、需要有苹果的证书以及密码(怎么获取,网上搜一下,需要交费的)

3、iphone手机一部,安装了该ios应用程序

4、.net 项目中引用PushSharp.Apple.dll,PushSharp.Core.dll(这两个文件在网上搜一下,有源码的)

5、开始写代码,定义全局的对象PushBroker pusher = new PushBroker();

6、注册方法:

复制代码 代码如下:
protected void startApp()
{
 pusher.RegisterAppleService(new ApplePushChannelSettings(File.ReadAllBytes(CertificatePath), CertificatePassword));
 pusher.OnDeviceSubscriptionChanged += pusher_OnDeviceSubscriptionChanged;
 pusher.OnDeviceSubscriptionExpired += pusher_OnDeviceSubscriptionExpired;
 pusher.OnNotificationSent += pusher_OnNotificationSent;
 pusher.OnNotificationFailed += pusher_OnNotificationFailed;

}
static void pusher_OnNotificationFailed(object sender, INotification notification, Exception error)
{
    var n = (AppleNotification)notification;
    //error.Message ...获取推送出错的信息
    Log.Error("推送出错的信息", error);
}

static void pusher_OnNotificationSent(object sender, INotification notification)
{
    //消息推送成功后
    var n = (AppleNotification)notification;
    //n.Payload.Alert.Body  获取推送的消息内容...
    Log.Error("推送内容"+n.Payload.Alert.Body);
}

static void pusher_OnDeviceSubscriptionExpired(object sender, string expiredSubscriptionId, DateTime expirationDateUtc, INotification notification)
{
    // 从数据库删除过期的expiredSubscriptionId
}

static void pusher_OnDeviceSubscriptionChanged(object sender, string oldSubscriptionId, string newSubscriptionId, INotification notification)
{
    // 把数据库中的oldSubscriptionId更新为newSubscriptionId
}

startApp()方法中有两个参数:

CertificatePath:证书的路径
CertificatePassword:密码

7、推送代码:

复制代码 代码如下:
pusher.QueueNotification(new AppleNotification().ForDeviceToken(TokenID)  .WithAlert("推送的内容").WithBadge(1).WithSound("default"));// 从数据库或者其他等地方获取设备的TokenID,每个iphone一个TokenID

8、准备好这些以后就可以测试,本人亲自测试通过,如果有什么不明白的地方欢迎留言交流!

9、如果想在Android设备上推送,项目要引进PushSharp.Android.dll,代码的话后期会为大家更新,敬请关注!

10、完整实例代码点击此处本站下载

希望本文所述对大家的.net程序设计有所帮助。

更多精彩内容其他人还在看

asp.net 虚方法、抽象方法、接口疑问

asp.net 虚方法、抽象方法、接口疑问等说明。
收藏 0 赞 0 分享

c#  操作符?? null coalescing operator

?? "null coalescing" operator 是c#新提供的一个操作符,这个操作符提供的功能是判断左侧的操作数是否是null,如果是则返回结果是右侧的操作数;非null则返回左侧的操作数。
收藏 0 赞 0 分享

.net 反序题目的详细解答第1/2页

在各种答案,以及平时面试过程中,这道题总归会有一些非常典型的错误发生。其中给老赵的感觉也非常有意思,不知其中的“思路”是否如老赵猜测那样。
收藏 0 赞 0 分享

implicitly convert type 'int' to 'short'的原因与解决方法

implicitly convert type 'int' to 'short'的原因与解决方法
收藏 0 赞 0 分享

比较完整的 asp.net 学习流程

好多朋友想学习后台编程语言,但请注意的事,学习后台是个循序渐进的过程,不可能一下就到位,其实不只是asp.net其它的编程语言都需要下面的一些知识。
收藏 0 赞 0 分享

官网 Ext direct包中.NET版的问题

下载了官网的 Ext direct 包进行研究,发现服务器端返回结果存在一点小问题。
收藏 0 赞 0 分享

C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)第1/2页

C#操作XML(读XML,写XML,更新,删除节点,与dataset结合等),以下就是操作XML的所有方法,相信可以满足很大一部份的使用了。
收藏 0 赞 0 分享

c# 连接字符串数据库服务器端口号 .net状态服务器端口号

正常的数据库连接字符串配置,这是在MSSQL服务器端口是1433(默认)的情况下。
收藏 0 赞 0 分享

ASP.NET 路径问题的解决方法

相对路径和绝对路径在ASP.NET中可以用~/来解决.
收藏 0 赞 0 分享

asp.net TemplateField模板中的Bind方法和Eval方法

在TemplateField模板中为了能够有限制的或者取出数据库中某列的值时,可以用Bind和Eval方法来实现。以下是Bind方法的格式,Eval的格式也是和Bind一样的。 Bind("列的名称","显示的格式文")
收藏 0 赞 0 分享
查看更多