源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

iOS远程推送Push开发教程

  • 时间:2020-08-06 12:57 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:iOS远程推送Push开发教程
[b]远程推送通知[/b] 什么是远程推送通知 顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为APNs(Apple Push Notification Services) 为什么需要远程推送通知 传统获取数据的局限性 只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容 远程推送通知可以解决以上问题 不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知 远程推送通知使用须知 [list] [*]所有的苹果设备,在联网状态下,都会与苹果的服务器建立长连接 什么是长连接 只要联网了,就一直建立连接[/*] [*]长连接的作用 时间校准 系统升级 查找我的iPhone .. ...[/*] [*]长连接的好处 数据传输速度快 数据保持最新状态[/*] [/list] 推送原理 [img]http://files.jb51.net/file_images/article/201609/2016091915404944.jpg[/img] Provider就是我们公司的服务器,经过苹果的APNs服务器找到我们的设备,给我们设备上的客户端应用推送消息。那APNs服务器是如何找到我们的设备和设备上的应用呢,答案就是DeviceToken,DeviceToken需要配置推送证书才可以获得,推送证书需要知道我们的APP ID(应用的BundleID,应用唯一标识)和UDID(设备唯一标识),还有自己服务器的UDID,我们先来打一个推送证书,登录开发者中心,点击证书模块 [img]http://files.jb51.net/file_images/article/201609/2016091915404945.jpg[/img] 点击iOS Apps的证书 [img]http://files.jb51.net/file_images/article/201609/2016091915404946.jpg[/img] 进入这样的界面 [img]http://files.jb51.net/file_images/article/201609/2016091915404947.jpg[/img] 点击App IDs,然后点右上角的加号 [img]http://files.jb51.net/file_images/article/201609/2016091915404948.jpg[/img] 箭头所指为应用ID描述,我们假设写了一个很牛逼的应用,ExcitedApp,接下来我们填入App ID,注意这里的App ID是固定的,不能有星号 [img]http://files.jb51.net/file_images/article/201609/2016091915405049.jpg[/img] 接下来我们添加App所需要的服务,然后点击Continue [img]http://files.jb51.net/file_images/article/201609/2016091915405050.jpg[/img] 一直点击下一步,完成,在App IDs 列表里面找到我们的ExcitedApp,我们看到 [img]http://files.jb51.net/file_images/article/201609/2016091915405051.jpg[/img] 发现Push服务是黄色警告,这时点击Edit,找到推送模块,我们需要配置推送证书了,点击红色箭头所指的位置 [img]http://files.jb51.net/file_images/article/201609/2016091915405052.jpg[/img] 我们需要一个CSR文件,CSR是一个签名请求文件,意思就是让我们的MAC具有调试推送的权限,点击继续 [img]http://files.jb51.net/file_images/article/201609/2016091915405053.jpg[/img] 点击了继续我们看到 [img]http://files.jb51.net/file_images/article/201609/2016091915405054.jpg[/img] 然后我们打开Mac上的钥匙串,从证书颁发机构请求证书 [img]http://files.jb51.net/file_images/article/201609/2016091915405055.jpg[/img] 前两个随便写,最后选择存到磁盘 [img]http://files.jb51.net/file_images/article/201609/2016091915405056.jpg[/img] 完成之后,接下来我们就可以添加CSR文件了 [img]http://files.jb51.net/file_images/article/201609/2016091915405057.jpg[/img] 添加完,选择生成 [img]http://files.jb51.net/file_images/article/201609/2016091915405058.jpg[/img] 证书配好了,下载下来 [img]http://files.jb51.net/file_images/article/201609/2016091915405059.jpg[/img]   配好了! [img]http://files.jb51.net/file_images/article/201609/2016091915405060.jpg[/img] 顺带着我们把发布的证书也给配了,步骤都一样 打开我们刚刚下载的证书,添加到钥匙串中 [img]http://files.jb51.net/file_images/article/201609/2016091915405061.jpg[/img] 终于能开始整我们的项目了,快哭了都 [img]http://files.jb51.net/file_images/article/201609/2016091915405062.jpg[/img] 不要忘记修改bundle id 这里还要搞一个真机调试的证书才可以 真机调试的东西这里不累述,搞了这么多东西,我们终于可以拿到DeviceToken了 [b]在AppDelegate.m中注册推送[/b]
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  
  UIUserNotificationType types = UIUserNotificationTypeBadge                              | UIUserNotificationTypeSound | UIUserNotificationTypeAlert ;
  
  UIUserNotificationSettings * setting = [UIUserNotificationSettings settingsForTypes:types categories:nil];
  [[UIApplication sharedApplication] registerUserNotificationSettings:setting];
 
  return YES;
 }

 -(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
 {
  NSLog(@"%@",deviceToken);
 }
[b]DeviceToken处理流程[/b]  [img]http://files.jb51.net/file_images/article/201609/2016091915405064.jpg[/img] 接下来我们用PushMebaby来测试一下我们的推送:https://github.com/stefanhafeneger/PushMeBaby/ 将我们的推送证书添加到项目目录 [img]http://files.jb51.net/file_images/article/201609/2016091915405065.jpg[/img]   [img]http://files.jb51.net/file_images/article/201609/2016091915405066.jpg[/img] 接下来手机上就可以收到推送了。 本文已被整理到了《[url=http://www.1sucai.cn/Special/888.htm]iOS推送教程[/url]》,欢迎大家学习阅读。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部