iOS的消息推送机制主要分为本地通知和远程推送两种模式。本文将围绕这两种模式,详细介绍iOS的通知推送机制。
本地通知
一、本地通知介绍
指定推送时间,此时手机会弹出推送通知,无需网络连接,如日历、待办事项、闹钟等应用。
二、本地通知使用
1. 在代码中注册本地通知
如果是iOS 7及更早的设备,无需开发者添加代码即可使用(用户需要打开App通知)。
如果是 iOS 8 - iOS 10 之间的设备,可以直接用下面的代码注册(通过注册本地通知)。
如果是iOS 10以上的设备,需要导入#in并(在iOS 10中,苹果推出了远程推送和本地通知的新框架)SDA-LeahyGo(图形数据提取工具),如下:
2. 发送本地通知
3. 取消本地通知
4. 处理传入的本地通知
4.1 应用在前台运行
4.2 应用在后台激活
4.3 应用在后台被挂起或杀死
远程推送
一、远程推送介绍
: 应用程序
APNs:苹果推送
远程推送工作流程
二、远程推送式
1. 普通推送
服务器通过 APNs 推送到手机的消息通知,包括:声音、横幅、角标和自定义字段。
通知内容的格式如下:
2. VoIP 推送
iOS 8之后推出,依赖.,主要用于音视频通话时的响铃,VoIP推送可以在应用被杀时唤醒应用。
使用时需要在&中开启VoIP、fetch、ModesSmillaEnlarger(图片清晰无损放大),并添加..
从 iOS 13 开始RePaper Studio(手绘板软件),为了防止非来电功能滥用 VoIP 推送,Apple 禁止在非来电功能中使用 VoIP 推送。如果使用 VoIP 推送,则只能使用 iOS 系统。库,如果你不使用 iOS 系统。库,App 收到 VoIP 推送后会被杀掉,表现类似于不接收 VoIP 推送;由于苹果在中国限制使用iOS系统.,因此VoIP推送功能无法在Apple Store获批。您可以将VoIP推送转换为APNs解决方案,融云iOS 13及以上VoIP功能适配。
3. 静默推送
iOS 7 版本之后引入的一种特殊的远程推送,也称为后台远程推送。本次推送的特点是收到通知时没有弹窗、和声音。此时无需点击通知,无需打开App就会执行以下方法:
注意:1.需要开启和开启远程推送功能
2. 静默推送字段中不允许出现alert、badge、sound等字段,必须包含-。
三、iOS 远程推送配置
1. 申请证书和配置文件
1.1 创建应用 ID
1.1.1 登录苹果,输入,点击“+”按钮。
1.1.2 创建App ID(如果App ID已经存在,可以直接跳过此步骤)
注意:App 不能使用通配符mac怎么打开软件消息通知,否则无法使用远程推送服务。
1.1.3 开启远程推送服务
1.2 创建推送证书
1.2.1 创建推送证书
1.2.2 选择新的证书类型(开发或生产)
注意:从iOS9.2开始,Apple上生成的生产推送证书名称为Apple Push:XXX,之前生成的生产推送证书名称为Apple IOS Push:XXX。
1.2.3 选择App ID开启远程推送,点击后会提示需要CSR文件,CSR文件需要参考1.2.生成@>4
1.2.4 生成CSR文件上传
• 打开mac 系统提供的钥匙串访问权限;
• 向证书颁发机构申请证书;
• 将请求的 CSR 保存到磁盘。
1.2.5 上传 (CSR) 文件
上传 . 1.2.4中生成的文件,点击生成推送证书。
1.2.6 下载 生成推送证书并导出.p12文件
双击 下载 的推送证书,它将被导入到钥匙串中。打开mac怎么打开软件消息通知,选择对应的证书,右键选择。保存 .p12 文件时,您可以设置或不设置密码。
注意在右键选择导出的时候不要打开证书,在证书上右击就可以了。
1.3 创建配置文件
1.3.1 已创建
2.3@>
1.3.2 选择对应的环境
2.6@>
1.3.3 关联配置文件的App ID
2.9@>
1.3.4 选择开发者证书
1.3.5 选择要安装的设备
1.3.5 填写姓名
1.3.6 下载 并双击将其添加到 Xcode
2. 代码处理
2.1 在代码中注册远程推送
如果是iOS 10以上的设备,需要导入#in并(在iOS 10中,苹果推出了远程推送和本地通知的新框架),如下:
#如果
#
#万一
注册远程推送相关代码:
2.2. 处理
如果处理方法是去掉[ ]的“”和“空格”,iOS 13之前的设备可以得到正确的,而iOS 13之后的设备不能得到正确的;因为在iOS 13之后,可以通过 [ ] 得到正确的字符串,变成如下格式:
现在获取的方法应该是:
3. 处理传入的远程推送
3.1 应用在前台运行
当 App 在前台可见时,它处于前台状态。
3.1.1 收到远程推送时会回调如下方法
3.1.2 点击远程推送会回调如下方法
3.2 应用在后台激活
当app进入后台没有被系统回收时,在后台处于活动状态。
3.2.1 点击弹窗会启动应用并回调如下方法
3.3 应用程序在后台被挂起或杀死
当App进入后台被系统回收或进程被杀死时,处于后台挂起状态。
四、iOS 远程推送扩展
1. 修改通知内容
随着iOS 10的新增,可以修改接收到的远程推送内容。
注意:
1.1 仅适用于 iOS 10 及以上版本;
1.2 后台推送的数据格式要协商;
1.3中的系统版本需要修改为10.0。如果版本高于测试设备的系统版本,则不执行相应的方法。
具体步骤如下:
•在项目中添加:。
• 主项目启用推送和模式功能。
• 启用推送功能。
• 在 .m 中实现 – (void):(t *) :(void (^)(t * )) :
发表评论