苹果的消息是从服务器接收数据,iOS 消息推送原理及简单实现

从图中可以很清楚的看出来推送的原理主要分为以下几步:

1.由App向iOS设备发送一个注册通知,用户需要同意系统发送推送。

2.iOS向APNs远程推送服务器发送App的Bundle Id和设备的UDID。

3.APNs根据设备的UDID和App的Bundle Id生成deviceToken再发回给App。

4.App再将deviceToken发送给远程推送服务器(自己的服务器), 由服务器保存在数据库中。

5.当自己的服务器想发送推送时, 在远程推送服务器中输入要发送的消息并选择发给哪些用户的deviceToken,由远程推送服务器发送给APNs。

6.APNs根据deviceToken发送给对应的用户。

· APNs 服务器就是苹果专门做远程推送的服务器。

·deviceToken是由APNs生成的一个专门找到你某个手机上的App的一个标识码。

· deviceToken 可能会变,如果你更改了你项目的bundle Identifier或者APNs服务器更新了可能会变。

再说一下简单实现,首先要去配置好证书,有调试和发布证书以及配置文件,这里不再细说。

1.必须先进行注册,得到用户授权

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// 1.获取推送通知的权限

UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge categories:nil];

[application registerUserNotificationSettings:settings];

// 2.注册远程推送

[application registerForRemoteNotifications];

return YES;

}

2.注册成功,接收从苹果服务器返回的唯一的设备token

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

NSMutableString * devices_token = [NSMutableString stringWithFormat:@"%@",deviceToken];

}

3.收到通知

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

{

NSLog(@"%@", userInfo);

}

4.注册推送失败原因

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {

NSLog(@"Registfail,注册推送失败原因%@",error);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值