zoukankan      html  css  js  c++  java
  • 通知(消息)机制

    通知(消息)机制


    技术博客http://www.cnblogs.com/ChenYilong/ 
    新浪微博http://weibo.com/luohanchenyilong 



     

    通知(消息)机制
     
    技术博客http://www.cnblogs.com/ChenYilong/新浪微博http://weibo.com/luohanchenyilong

     

    通知(消息
    Notification)机制基本概念 

    • iOS中提供了两种通知机制: - 本地通知
    - 推送通知
     本地通知推送通知可以让不在前端运行的应用程序告知用户应用程 序内部发生的信息。这些信息可以是一条消息,也可以是即将要发生 的事件,亦或者是远程服务器上有新的数据等

    • 通知的展现方式:- 显示一个UIAlertView或者横幅 -更新应用程序图标上的数字 - 播放声音


    本地通知
    --示意图 




    技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong

    本地通知 

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


    调度本地通知的步骤 



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

    消息推送机制原理 

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

    技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong

    技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong

    技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong 
    消息推送机制示意图 




    Device Token
     

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

    技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong

    deviceToken
    处理流程 




    消息推送的实现步骤 

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


    技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong

    设置应用程序远程推送的许可证 





    允许应用程序接收远程通知 





    从证书颁发机构请求证书 





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




    技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong

    选择验证字使用的
    App ID 




    上传
    CSR文件 




    下载生成的验证字文件 




    技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong

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





    新建开发许可证文件 




    选择
    App ID 





    技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong
    Thanks!
     Q & A 

    © chenyilong. Powered by Postach.io


    作者:
    出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
    本文版权归作者和博客园共有,欢迎转载,
    但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    函数
    A × B problem
    求n的阶乘
    自己构建一个vector函数
    int与string的互相转化
    列一列(斐波那契数列)
    找一找
    c++大数计算模板
    JSON--js中 json字符串转对象、对象转字符串
    JSON
  • 原文地址:https://www.cnblogs.com/ChenYilong/p/3560137.html
Copyright © 2011-2022 走看看