美文网首页
iOS--本地通知与远程推送

iOS--本地通知与远程推送

作者: 空白Null | 来源:发表于2016-07-07 15:38 被阅读267次

    一、苹果中的几种通知

    1、广播通知(NSNotificationCenter)

    1)实现一个对象对多个对象的通信

    2)是抽象的,肉眼看不到的

    2、推送通知

    1)可以让不在前台运行的app,告知用户app内部发生了什么事情

    2)肉眼看看到的

    3)设置提示样式

    设置 ---- 通知中心  点击任意应用通知  提示样式

    4)推送通知有两种

    本地通知(Local Notification)

    远程通知(Remote Notification)

    二、本地推送通知

    1、概念

    不需要联网就能发出的推送通知(不需要服务器的支持)

    2、使用场景

    常用来定时提醒用户完成一些任务,即使程序被杀死提示照样有,例如:记事本、备忘录等

    3、如何发送出本地通知

    1)创建本地通知对象

    UILocalNotification *localN = [[UILocalNotification alloc]init];

    2) 设置本地推送通知属性

    触发时间

    fireDate

    通知的具体内容

    alertBody

    锁屏时的动作标题

    alertAction

    音效文件名

    soundName

    app图标数字

    applicationIconBadgeNumber

    点击通知, 打开程序时候显示的启动图片

    localNote.alertLaunchImage

    3) 调度本地推送通知

    [[UIApplication sharedApplication] scheduleLocalNotification:localN];

    4) 取消所有通知

    UIApplication *app = [UIApplication sharedApplication];

    [app cancelAllLocalNotifications];

    5)获取授权

    UIUserNotificationSettings *seeting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];

    [application registerUserNotificationSettings:seeting];

    三、监听本地通知点击

    1、点击通知,应用程序进入前台或者在前台时调用,如果程序杀死,点击通知信息不执行

    - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{

    }

    2、如果程序被杀死后还想点击通知信息进入相应界面,需要在下面方法里做相应判断

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

    if(launchOptions){

    UILocalNotification *localNote = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey];

    }

    }

    3、在Appdelegate向window添加试图时,要重写window


    /////远程推送////

    一、远程通知基本概念

    1、从远程服务器推送给客户端的通知(需要联网)

    2、又称APNS(Apple Push Notification Services)

    3、为什么需要远程推送通知

    1)传统获取数据的局限性

    只要用户关闭了app,就无法跟服务器沟通,无法从服务器上获取最新的数据内容

    2)远程推送通知可以解决以上问题

    不管用户打开还是关闭app,只要联网了,都能接到服务器推送的远程通知

    二、远程通知使用须知

    所有苹果设备,在联网状态下,都会与苹果的服务器建立长链接

    1)长链接

    只要联网了,就一直建立链接

    2)长连接作用

    时间校准

    系统升级

    查找iPhone

    3)长链接的好处

    数据传输速度快

    数据保持最新状态

    三、推送通知原理

    查看课件里面远程推送原理

    1、发送设备的UDID和应用的Bundle Identifer给APNS服务器

    2、经苹果加密生成一个deviceToken,通过devieceToken能找到某个设备上的某个应用程序

    3、发送当前用户张三的deviceToken和用户的标志(比如id或qq)给QQ服务器

    4、QQ服务器将发送过来的内容存到数据库

    5、李四的手机给张三发信息--吃了么,实际是先发送到服务器

    6、去数据库查询张三的deviceToken

    7、将内容发送给苹果的APNS

    8、APNS通过deviceToken找到张三现在的设备,并发送相应信息

    四、开发iOS程序的推送功能,iOS端需要做的事情

    1、向苹果请求获得deviceToken

    2、得到苹果返回的deviceToken

    3、发送deviceToken给公司的服务器

    4、监听用户对通知的点击

    五、调试iOS远程推送功能,必备条件

    1、真机

    2、调试推送需要的证书文件,

    1)aps_development.cer

    某台电脑就能调试app的推送服务

    2)iPhone5_qq.mobileprovision

    某台电脑就能利用某台设备调试某个程序

    3、发布具有推送服务的app

    1)aps_production.cer

    如果发布的程序中包含了推送服务,就必须安装这个证书

    2)qq.mobileprovison

    某台电脑就能发布某个程序

    相关文章

      网友评论

          本文标题:iOS--本地通知与远程推送

          本文链接:https://www.haomeiwen.com/subject/kmjljttx.html