♤♤ 刚入iOS 坑不久的我,接到了领导集成推送功能的要求。
♤♤ 对推送一无所知的我,心理有些许的没底。
♤♤ 怀着急切的心情,打开浏览器开始从多如牛毛的产品中筛选。

♤♤ 当我看到极光的文档,深入浅出,图文结合,使本来晦涩难懂的 iOS 推送构架变得通俗易懂。
♤♤ 至此,我的心情就像第一次见到初恋,内心的激动难以言表,我深深的爱上了极光!
♤♤ 在后续的集成到项目中也是一帆风顺,就犹如女友细致体贴,心思缜密,考虑到了所有的细节。

♤♤ 当第一次调试就听到项目第一声推送,从陌生,现已陷入热恋之中。
♤♤ 结婚后作为全职太太的极光有繁重的家务(推送任务),但是她完成得是那么地游刃有余,娶妻汝尔,夫复何求!认定极光就是我现在,以后一直要使用的推送!

♤♤ 极光多么美妙的名字,极光美得干净纯洁。
♤♤ 就像小夫妻有事会因为忙碌而略微忽视了对方,就会闹闹矛盾。当我集成完极光一段时间后,要升级极光,经常要切换调试模式和发布模式。因为有了一段时间的忘却,不免忘了要配置哪些参数,而调皮的极光机会跟你堵堵气,看你是否能清楚地记得那些纪念日(需要配置的地方)。
♤♤ 最后祝我的小爱人越来越完美!么么哒😘

附上极光推送 iOS 端使用心得(兼容 iOS 10 ):
1、自定义声音:发送的sound名字改成要播放的文件名即可(全名)

2、开发环境切换:
① Demo 中 AppDelegate.h 文件中 isProduction: false 表示采用的是开发证书,true 表示采用生产证书发布应用。

②配置 plist:
键: APS_FOR_PRODUCTION
值: 0 表示采用的是开发证书,1 表示采用生产证书发布应用。
* 注:此字段的值要与 Build Settings 的 Code Signing 配置的证书环境一致。
* General 中的证书也要做相应修改

注 xcode8 以后:(工程名) .entitlements 文件中 APS Environment 键的值不需要做修改!

3、服务端推送设置
推送消息携带 content-available: 1 是 Background 运行的必须参数,如果不携带此字段则与 iOS7 之前版本的普通推送一样。

服务端 payload 格式 :aps 增加 category 字段,当该字段与客户端 UIMutableUserNotificationCategory 的 identifier 匹配时,触发设定的 action 和 button 显示。

 payload example: 
{"aps":{"alert":"example", "sound":"default", "badge": 1, "category":"reply"}}