您的位置:首页 > 其它

史上最全的推送

2015-10-28 15:37 204 查看

史上最全的推送简介

推送的原理

长连接的作用:

时间校准
系统升级
查找我的iPhone

长连接的好处:

数据的传输速度快
互数据保持最新的状态
推送通知使用须知

所有的苹果设备, 在联网状态下, 都会与苹果的服务器建立长连接
推送的过程
把自己手机的deviceToken发给服务器
只要我想获取deviceToken, app就会自己把UDID和Apple ID发给APNs, APNs利用算法, 生成deviceToken.
APNs把deviceToken传给手机, 手机再传给自己的服务器.
每次都要更新deviceToken发给服务器(服务器判断和上次不一致, 就会进行更新)
这样就会导致服务器的压力非常大, 因此推送借助JPush完成

服务器把 deviceToken和要推送的内容给 APNs
APNs 把这个消息 推送给手机





每次都要更新deviceToken发给服务器(服务器判断和上次不一致, 就会进行更新),这样就会导致服务器的压力非常大, 因此推送借助JPush完成

推送必备条件

在哪个应用做推送
给哪个手机做推送 (可以在手机调试, 现在已经不需要证书了)
在哪台设备上调试推送服务 (下载推送的证书, 生成证书的时候Bundle ID 要和xcode里面的一模一样, 否则推送会失败))
我们把证书下载好之后给服务器人员
推送过程

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

// 注册远程通知 (第一次注册服务的时候会弹出提醒框, 让用户授权)
// 只要是调用了这句代码, 注册了推送, 他内部就会给APNs服务器发请求, APNs会自动计算deviceTocken
// 计算完成之后, 会通过application:didRegisterForRemoteNotificationsWithDeviceToken这个代理给app
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert];

// 程序关闭, 推送过来之后, 打开就要处理
NSDictionary *dict = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];

return YES;
}

// 获取设备的deviceTocken
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

NSLog(@"注册远程推送成功: %@", deviceToken);

// deviceToken发给公司的服务器
//    [JPUSHService handleRemoteNotification:userInfo];

}

// 接收到远程推送通知就会调用
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

}

集成极光推送



拷贝代码

参考博客: http://blog.csdn.net/shenjie12345678/article/details/41120637
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: