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)

 
 

{

 
 

// 从数据库删除过期的expiredS ubscriptionId

 
 

}

 
 

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,准备好这些以后就可以测试

posted @ 2015-08-30 15:00  撷一程  阅读(287)  评论(0编辑  收藏  举报