iOS机制概览:本地与推送详解.pptx

通知(消息)机制讲师:刘凡技术博客:新浪微博:

通知(消息Notification)机制基本概念iOS中提供了两种通知机制:本地通知推送通知本地通知和推送通知可以让不在前端运行的应用程序告知用户应用程序内部发生的信息。这些信息可以是一条消息,也可以是即将要发生的事件,亦或者是远程服务器上有新的数据等通知的展现方式:显示一个UIAlertView或者横幅更新应用程序图标上的数字播放声音

本地通知——示意图

本地通知本地通知是一个UILocalNotification的实例,包含以下三个重要属性:调度时间:要使用本地通知,必须指定通知触发的日期以及时间,还可以设置通知的重复间隔,例如按周重复或者按月重复通知类型:用于指定提示文字信息,操作按钮的标题,应用程序图标上的数字以及要播放的声音自定义数据:本地通知还可以包含一个自定义数据的字典

调度本地通知的步骤实例化UILocalNotification对象通过fireDate属性,设置操作系统触发通知的日期和时间如果将timeZone属性设置被当前地区对应的NSTimeZone对象,系统会自动根据所在时区调整通知触发时间设置通知的属性:alertBody:信息内容alertAction:消息标题applicationIconBadgeNumber:图标上的数字soundName:要播放的声音UILocalNotificationDefaultSoundName:使用默认系统声音通过userInfo属性还可以将一个数据字典附加到本地通知调度并提交本地通知提示:通过userInfo可以在用户通过通知进入系统时定位到所需的位置

消息推送机制原理苹果提供了一堆服务器,每个ios设备和这些服务器保持了一个长连接,ios版本更新提示、手机时钟校准等操作都是通过这个连接实现消息推送服务简称为APNS(ApplePushNotificationService),是该长连接中的一个服务,如果要向用户发消息,必须通过APNS进行中转消息推送不支持群发,只能一个一个发消息包一般由两部分组成:标示用户手机的id(32个字节)+消息体(=256Bytes),消息体是json字符串,传输过程使用SSL加密标示用户手机的ID又被称为DeviceToken,个手机都不一样,DeviceToken非常重要!

消息推送机制示意图软件提供方的数据发送服务器发送的内容提交给苹果的服务器苹果服务器会根据设备的代号,依次推送消息用户通过横幅可以直接打开应用程序1)客户客户端还没有刷新该记录2)流量的考虑,让传输数据尽量少、精

应用程序注册接收消息启动时,可以获取到deviceToken将token保存在本地提交到开发商的数据服务器URLConnectionPUSH方法提交服务器保存用户的token服务器发送消息数据库所有的token,生成发送消息APNS服务手机

接收到token与本地的token进行比较不一致提交给服务器(新旧token同时提交,便于服务器更新数据)

DeviceToken每台机器的DeviceToken都不一样,但不是硬件编码(UDID)如果重新安装操作系统,DeviceToken可能会发生变化DeviceToken是在用户手机发起请求时由ASPN生成的-(void)application:(UIApplication*)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken方法可以获取到用户设备的DeviceToken注意:DeviceToken的生成机制可能随时变化,最好方法每次获取到deviceToken后,与之前(如果有)的deviceToken进行比较,如果发生变化,及时更新自己数据服务器上的记录

deviceToken处理流程

消息推送的实现步骤在苹果开发者中心注册并下载一份cer文件新建并下载一个ProvisioningProfile编写代码-(BOOL)application:didFinishLaunchingWithOptions:注册允许接收远程通知及通知类型-(void)application:didRegisterForRemoteNotificationsWithDeviceToken:记录deviceToken并提交至服务器提示:发送通知消息的工作由后台服务器完成,客户端开发不需要考虑

从证书颁发机构请求证书

在开发中心申请通知推送服务验证字

选择验证字使用的AppID

上传CSR文件

下载生成的验证字文件

将验证字文件导入到钥匙串管理器

新建开发许可证文件

选择AppID

本节知识点回顾

QAThanks!

文档评论(0)

1亿VIP精品文档

相关文档