推送

APNS (Apple Push Notification Service) 推送机制

  • 苹果官方图
苹果官方图
  • Provider 即为我们自己的后台服务器
  • 过程可以分为三个阶段
    第一阶段: 应用程序要要发送的消息, 目的 iPhone 的标示打包, 发给 APNS.
    第二阶段: APNS 在自己已经注册 Push 的 iPhone 列表中找到对应的标识的 iPhone, 并把消息发送给这个 iPhone.
    第三阶段: iPhone 把发来的消息传递给相应的应用程序, 按照设定弹出 Push 通知.

APNS推送通知的详细工作流程

推送_第1张图片
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); 
}

你可能感兴趣的:(推送)