iOS极光推送

背景介绍

  • 通过友盟统计到的崩溃,绝大多数都是定位到了极光推送的相关函数

  • 项目中极光推送的版本是2.1.0,现在从官网上看到的版本是3.0.0

  • 这个帖子的4楼为什么很多的 iOS app 都有秒退现象?有什么好方法避免它?也说极光推送带来了一堆崩溃问题

  • 开发者技术邮箱:[email protected],已经发了邮件。当天下午收到回复,第二天打开邮箱就看到了。建议是升级到JPush iOS SDK v3.0.0
    提问可以到极光社区

  • 推送技术支持QQ群:276533421,已经申请加群。当天加入,有问题可以直接在群里面提。当前的版本是2.1.0,对方的建议是升级到3.0.0,估计对这一块有修复。

  • 极光社区有2.2.0版本崩溃的讨论,可是也没有结论JPushSDK崩溃,求解决

  • 这个也是2.1.0的错误,看来2.*版本的bug还是比较多的多次调用极光引起堆溢出

  • 极光开发者服务

  • 极光文档

消息形式

  1. 通知,会出现在通知栏,走苹果的APNs通道

  2. 自定义消息,不会出现在通知栏,走TCP长链接,不走苹果的APNs通道。App进入后台或者关掉之后会失效。主要用于产品内部业务逻辑。

  3. 富文本,这个目前只有Android有,API不支持,暂时不适合用于商业产品

  4. 本地通知,相当于定时器,适用Todo、闹钟等任务,跟网络无关

推送目标

  1. 标签,每个用户可以打多个标签,不同的用户可以打相同的标签。可以根据标签,批量下发 Push 消息。

  2. 别名,每个用户只能指定一个别名,用来唯一确定用户

  3. Registration ID,JPush 服务端分配的设备标识符。同一个手机不同 APP 的 Registration ID 是不同的。用来对单一设备进行推送。

  4. 用户分群,用户分群的筛选条件有:标签、地理位置、系统版本、注册时间、活跃用户和在线用户。分群有ID,可以根据这个ID,调用API对特定用户分群进行推送

推送原理

iOS极光推送_第1张图片
jpush_ios.png
  1. 红线部分就是iOS普通的通知业务,JPush只是个“二传手”,基本上苹果API的一层封装,获得了介入app的一个入口

  2. 蓝线部分是TCP长连接,IM应用里面普遍都有的。对iOS来说,这个是有意义的,不然话,前后台都要自己写代码。并且这部分一般都是c和C++实现的,实现和维护都不是很容易(相对于Object-c API来说)

1, JPush Web Portal也是有意义的,可以不需要App Server介入,让运营就有能力进行消息推送。

集成

  • 静态库,包含3个文件,直接接入工程
    JPUSHService.h
    jpush-ios-x.x.x.a
    jcore-ios-x.x.x.a

  • 开启Application Target的Capabilities->Push Notifications选项

  • iOS SDK 集成指南

  • 适配 iOS 10,极光推送用户要做这 6 处更改

你可能感兴趣的:(iOS极光推送)