iOS推送

推送通知本身是iOS系统的行为,所以在APP没有运行(没有再前台也没有再后台)的时候,任然能够推送或接受

收到推送的时候无法获取到内容,点击通知之后能跳转到APP中,可以获取到推送中带过来的扩展内容

注册推送服务:

- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary)launchOptions
{ //注册推送

if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
  [JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert) categories:nil];
} 
else {
[JPUSHService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert) categories:nil];
   }
}

在第一次出发这段代码的时候,会有一个系统弹窗,询问你是否允许该APP要给你推送消息

允许:系统打包APP+手机唯一标识+证书发送至APNs服务器注册推送服务

注册成功:

可以在此方法中获取到deviceToken他是对(手机+APP)组合的唯一标识

-(void)application:(UIApplication *)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{ //获取DeviceToken
    [JPUSHService registerDeviceToken:deviceToken];此为极光方法
}
 
推送通知的提醒
前台收到:

系统会将内容传到didReceiveRemoteNotification

后台收到:

· 开启了RemoteNotification,系统执行didReceiveRemoteNotification:fetchCompletionHandler方法

· 展示横幅、通知中心、声音、角标

退出收到:

· 如果点击推送横幅、通知中心而启动APP,执行didFinishLaunchingWithOptions方法

· 展示横幅、通知中心、声音、角标

推送包含

本地通知:

APP指定推送时间,在该时间准时弹出推送通知

远程通知:
1.普通推送

· 最常见的推送通知

· 包含声音、横幅、角标、自定义字段

· APP: 处于前台,不展示横幅,可通过didReceiveRemoteNotification(iOS7之前)或
didReceiveRemoteNotification:fetchCompletionHandler(iOS7之后)方法获取内容

· 处于后台或退出,会展示横幅,无法获取通知内容

· 点击横幅启动,在didFinishLaunchingWithOptions方法获取内容

2.后台推送

· 各种显示效果如普通推送效果

· 必须携带"content-avaliable"=1;

· 必须携带alert,badge,sound中至少一个字段(后台如果不给,前台就没有任何声音)

· 必须在xcode工程中开启notifications的功能

· APP

1.处于前台或退出与普通推送效果一致

2.处于后台,可通过didReceiveRemoteNotification:fetchCompletionHandler获取通知内容,获取情况与普通推送不同的是,此时iOS系统允许开发者在APP处于后台的情况下执行代码

3.静默推送

· 没有任何展示效果

· 必须携带"content-avaliable"=1;因此静默必然是后台的

· 不能携带alert、badge、sound任何字符

· 可携带自定义字段

· APP :效果与后台推送效果一直

第三方推送

1.广播 :

无差别的发给所有的用户

2.别名(alias):

· 第三方提供的功能

· 每个手机只能设置一个别名alias

· 仅指定alias的用户能收到推送,不再限制于手机

3.标签(tag):

· 第三方提供

· 可以设置多个、可增加、清空

· 用于指定多样的属性,如"1000"+"daily"+"discount" 可用于标签月消费超过1K,喜欢购买日用品、偏好折扣商品的用户

· 如果要删除,需要在上次设置的时候,讲设置的tags保存至NSUserDefaults本次剔除不需要的tag之后,再重新设置

· 推送时可指定多个tag来统一发送内容

4.Resgistration ID :

· 第三方提供

· 在讲deviceToken提供给第三方之后,其服务器会自动生成的志向该手机的唯一id

· 可用于对核心用户、期间用户的精准推送

应用内消息

· 不需要证书

· 由第三方服务器下发,而不是APNs

· 比通知快,不延迟,可用于IM消息的即时送达

· 能够长时间保留离线消息,可获取所有历史消息内容

· 能够长连接技术下发消息 手机必须启动并与第三方服务器建立连接

· 如果手机启动立刻切换到后台,很可能没有建立连接

· 手机必须处于前台才能接收消息

· 手机从后台切回前台,才会自动重新建立连接,并收到离线消息

· 没有任何展示 只能自己实现UI效果

· 完全静默情况下处理APP内部逻辑

· AppStore审核必须关闭一些功能,上架后再通过后台开启

通知 与 消息对比

通知 消息
送达时间 可能存在几秒的延迟 无延迟
获取时间 前台或后台 仅前台
离线内容 保留一段时间,无法查询历史内容 始终保留,可查询全部历史内容
系统展示 静默或处于前台不展示,后台或退出展示角标、声音、横幅 不展示

QQ/微信聊天

同时下发一组通知 + 消息,如果用户没有启动APP,虽然有延迟,但是必然能够收到通知,在通知的提醒之后,用户打开APP,此时收到离线消息,及时更新UI

参考:iOS 推送全解析,你不可不知的所有 Tips!(完整版)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容

  • 本文旨在对 iOS 推送进行一个完整的剖析,如果你之前对推送一无所知,那么在你认真地阅读了全文后必将变成一个推送老...
    逆光少年阅读 2,152评论 1 21
  • 本文旨在对 iOS 推送进行一个完整的剖析,如果你之前对推送一无所知,那么在你认真地阅读了全文后必将变成一个推送老...
    pikacode阅读 27,754评论 91 290
  • 准备篇 Tip 1:推送通知(Push Notification)必须购买Apple开发者账号,并使用特定的推送证...
    AngeloD阅读 1,302评论 0 1
  • 简介 APNs 是 Apple Push Notification service 的简称 苹果推送通知服务为...
    uubird阅读 4,098评论 0 2
  • 总体内容1.推送通知的介绍2.本地通知3.远程通知4.极光推送的使用 一、推送通知的介绍 1.1、推送通知的作用:...
    IIronMan阅读 5,122评论 4 34