APNS (Apple Push Notification Service) 推送机制
苹果官方图
- Provider 即为我们自己的后台服务器
- 过程可以分为三个阶段
第一阶段: 应用程序要要发送的消息, 目的 iPhone 的标示打包, 发给 APNS.
第二阶段: APNS 在自己已经注册 Push 的 iPhone 列表中找到对应的标识的 iPhone, 并把消息发送给这个 iPhone.
第三阶段: iPhone 把发来的消息传递给相应的应用程序, 按照设定弹出 Push 通知.
APNS推送通知的详细工作流程
APNS推送通知的详细工作流程
- 应用程序注册 APNS 消息推送
- iOS 从 APNS Sever 获取 device token, 应用程序接受 device token
- 应用程序将 device token 发送到自己的服务器
- 服务器向 APNS 发送消息
- APNS 将消息发送给 iPhone 的应用程序
准备工作
- 需要有一台苹果设备, 模拟器不支持推送.
- 注册证书
使用 Push
// 在AppDelegate里didFinishLaunchingWithOptions函数里写
- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//推送的形式:标记,声音,提示
[[UIApplication sharedApplication] registerForRemoteNotificationTypes: UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert];
return YES;
}
- (void)application:(UIApplication *)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData *)pToken {
NSLog(@"regisger success:%@",pToken);
//注册成功,将deviceToken保存到应用服务器[数据库](http://lib.csdn.net/base/14)中
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
// 处理推送消息
NSLog(@"userinfo:%@",userInfo);
NSLog(@"收到推送消息:%@",[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]);
}
- (void)application:(UIApplication *)applicationdidFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
NSLog(@"Registfail%@",error);
}
网友评论