史上最全的推送
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
相关文章推荐
- 8.5.6 Optimizing InnoDB Queries 优化InnoDB 查询
- Fedora 22安装后无法找到Realtek无线网卡的解决
- 人工误删除InnoDB ibdata数据文件与ib_logile重做日志文件如何恢复详细过程
- 反向传导算法 & SOFTMAX & Innerproduct_layer.cpp & softmax_loss_layer.cpp
- android-circlebutton介绍原理
- Mac OS X 中安装JDK 7
- Nginx作为gitweb服务器
- 部署LyncServer2013之六 申请并分配证书和启动服务
- ifream高度自适应
- 菜鸟的java学习-------第一篇初识java
- MySQL下concat函数中null值问题
- window.opener方法的使用 js跨域
- C#开源资源大汇总
- 洛谷1901 发射站(单调栈)
- android软键盘的属性设置
- 利用Cydia Substrate进行Android HOOK
- python装饰器
- PDB Files: What Every Developer Must Know
- windows下有哪些有用的系统命令
- 众联BreezeCMS实现思路(一)