iOS App消息推送集成指南
编辑文档
概要
机智云APP开源框架集成了百度推送和极光推送功能,只需修改部分代码即可立即使用。 本文档介绍如何基于消息云开源框架快速集成消息推送功能。 有关开源框架的信息,请参阅快速入门文档。
极光推送的高速集成
1 .申请极光AppKey和主安全
1.1创建极光APP应用程序
如图所示,需要上传苹果的开发者证书、开发证书和生产证书以及证书密码。
1.2苹果证书申请
苹果开发者中心:登录https://developer.apple.com,申请并下载cer证书,双击证书从密钥列打开,选择证书,选择《登陆》和《我的证书》,然后右键单击证书
单击《导出》将显示以下组合框,其中设置了证书名称和存储路径
单击“存储”,显示密码输入框并设置证书密码
1.3将证书导入极光
证书导入成功后,将显示《已验证》,如下图所示
现在创建了极光APP应用程序,APP应用程序生成的AppKey和Master Secret也可以正常使用
2 .将第三方推送绑定到云
2.1d 3申请开通工程
开设D3 Engine需要通过机智云审核,点击开通服务后,需要联系机智云FAE协助审核开通。
2.2云绑定极光推送
审查通过后,服务栏中将显示D3 Engine。 设置—单击编辑推送平台
在下图中填写极光申请的APP app key和Master Secret,选择测试环境。
注:如果选择证书类型《开发》,则只能在开发环境APP中接收推送消息
2.3使用d3engine创建推送规则
项目列表-以下是单击新项目、创建设备并将其联机后,将消息推送至APP的规则。
将“设备数据”框拖到右边距,然后双击该栏。
将触发方式设为“设备在线”,单击“确定”。
双击“推送APP”,设置要推送的内容。
修改UIConfig.json代码
如果填写jpush_app_key并将push_type设置为1,则选择极光推送,并且绑定该极光APP应用程序的机器智云为app_id、app_secret、product
4. XCode配置推送
打开项目,选择targetscapabilities,然后打开推送通知按钮,即可打开项目的远程推送功能。
启用按钮后,将自动生成. entitlements文件,如下所示: 红色框中的值表示推送环境,开发表示开发环境,分发表示生产环境。 值development仅在开发环境中启用推送,而分布设置仅在生产环境中启用。
5 .启动虚拟设备
6 .部署执行APP
在以上步骤中,该APP具备极光推送功能,引入手机后,可以通过申请账户登录并扫描代码绑定云上的虚拟设备。
7 .测试推送功能
关闭虚拟设备,然后重新打开,可以看到手机收到了推送消息。
8 .极光定制推送音
D3引擎支持为每个规则设置特定的推送声音,主要需要进行两处修改。
8.1按键设置
要打开推送规则,请执行以下操作:
选择APP的复选框(上面红色框的部分)。
单击《显示json样例》 :
Example的具体内容如下。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21{
"baidu": {
"aps": {
"badge": 0,
"sound": "default"
},
"notification_builder_id": 0,
"notification_basic_style": 0
},
"jiguang": {
"ios": {
"sound": "sound.caf",
"badge": 1
},
"android": {
"builder_id": 0,
"alert_type": 1,
"style": 1
}
}
}
这里做的是iOS的极光推送,假如推送声音名称为《pushMusic.caf》,则高级参数需要填写的内容如下:
1
2
3
4
5
6
7
8{
"jiguang": {
"ios": {
"sound": "pushMusic.caf",
"badge": 1
}
}
}
具体如图:
点击《确定》保存设置即完成推送声音的设置
注意:”badge”这个参数是设置推送后APP显示的角标内容,当设置为1时,APP收到推送显示的角标为1,不过按照正常的逻辑应该是APP收到多条推送会自动累加角标数,如果这里填1,那不管推送多少条通知,角标一直都为1。
如果要角标根据消息数量累加,即把”badge”: 1去掉即可,没有设置的话,极光会默认做累加操作。
8.2 添加推送声音文件到项目
当在D3成功设置自定义推送声音之后,每当有推送消息推到APP中,系统会先去APP中查找是否有相关名称的声音文件,有:则播放该声音,没有:则播放系统默认的声音。
推送声音的音频格式包括aiff,wav,caf 文件,并且播放时间必须在30s内,文件也必须放到 app 的 mainBundle 目录中,有其中一个条件不满足,系统都会播放默认通知声音来替代。
添加音频文件到项目如下:
至此自定义推送声音设置结束,推送相关消息APP将播放设置的音频。
快速集成百度推送
1. 申请百度API KEY
1.1 创建百度应用
如上图,需要上传苹果pem格式的开发证书和生产证书。
1.2 申请苹果证书
申请cer证书并导出p12的过程见《快速集成极光推送》的1.2部分,下图示范如何从p12证书导出pem证书
进入《终端》,输入如下命令即可导出pem证书。
1openssl pkcs12 -in -out -nodes
1.3 导入证书到百度推送
上传pem证书到《1.1 创建百度应用》所示图中,上传证书成功,会显示《已验证》,并且生成百度推送的API KEY 和 SECRET KEY。
2. 在云端绑定第三方登陆
2.1 申请开通D3 Engine
该步骤可参考《快速集成极光推送》的2.1部分
2.2 云端绑定百度推送
将从百度云推送平台申请到的应用API Key和Secret Key填写到下图,并选择测试环境。
注意:选择证书类型为《开发》时,只有在开发环境APP才能收到推送消息
2.3 利用D3 Engine创建推送规则
该步骤可参考《快速集成极光推送》的2.3部分
3. 修改UIConfig.json代码
填写bpush_app_key,修改push_type为2,表示选择百度推送, 并且填写绑定了该百度应用的机智云应用于app_id、app_secret、product_key的值中。
注意:这里也需要设置XCode推送,详情看《快速集成极光推送》的《4 XCode配置推送》
4. 修改百度推送的启动接口
百度推送的启动接口有一个pushMode参数,分别有两个值BPushModeDevelopment 和 BPushModeProduction。
BPushModeDevelopment:设置百度推送环境为开发环境
当设置的环境与当前APP的运行环境相符合是,推送才会生效。
5. 启动虚拟设备
该步骤可参考《快速集成极光推送》的第5部分
6. 部署APP运行
通过以上步骤,该APP已具备了百度推送功能,部署到手机上后,申请帐号并登录,通过扫码即可绑定云端的虚拟设备。
7. 测试推送功能
关闭虚拟设备后,再次开启,即可看到手机收到了推送消息。
8. 百度自定义推送声音
8.1 设置推送声音
进入到推送声音设置界面如下,如何进入请参考极光的《极光自定义推送声音的8.1部分》
获取Example的具体内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21{
"baidu": {
"aps": {
"badge": 0,
"sound": "default"
},
"notification_builder_id": 0,
"notification_basic_style": 0
},
"jiguang": {
"ios": {
"sound": "sound.caf",
"badge": 1
},
"android": {
"builder_id": 0,
"alert_type": 1,
"style": 1
}
}
}
这里做的是iOS的百度推送,假如推送声音名称为《pushMusic.caf》,则高级参数需要填写的内容如下:
1
2
3
4
5
6
7
8{
"baidu": {
"aps": {
"badge": 0,
"sound": "pushMusic.caf"
}
}
}
设置完成如下:
点击《确定》保存,即完成推送声音的设置
8.2 添加推送声音文件到项目
这部分请参考文档上方《极光自定义推送声音的8.2部分》
常见问题FAQ
1、开发者一定要开通D3 Engine才能使用消息推送吗?
解答:是的,目前D3 Engine只针对于企业开发者用户。所以,只有企业开发者才能申请开通使用。
2、使用极光推送按照以上步骤完成代码修改,但是却无法收到推送消息。
解答:
步骤一:查看XCode的推送开关是否被开启,详情看《2.4 XCode配置推送》。
步骤二:查看项目的.entitlements文件的key值是否与当前的测试环境相符合
distribution表示生产环境,
development表示开发环境
步骤三:确定项目的BundleID是否与证书的Bundle ID一致
注意:若是百度推送,还需要确定启动百度推送方法所设置的pushMode是否与当前的测试环境一致,详情查看《快速集成百度推送》的《4 修改百度推送的启动接口》
如经过以上三个步骤,还是无法推送,则需要通过推送平台推送来确认问题
步骤四:登陆极光/百度平台的应用,测试一下直接从推送平台上推送通知是否能够到达APP。
推送平台单推不可以推的情况:
1)确定证书是否已经失效,考虑更换证书。
推送平台单推可以推的情况:
1) 确认在机智云D3 Engine设置的推送环境是否与当前测试环境一致,如下图的《证书类型》
2) 确认机智云应用绑定的推送APPID和Secret是否与APP中所使用的相对应,如下图
3) 若依然失败,则在如下图位置打断点,打印result的值,确定具体的错误码,根据错误码提示来确认问题并修正。
通常result有错,需要从下图所示代码来进一步确认。
3、极光推送如何设置角标的值
解答:[JPUSHService setBadge:0];