苹果百度手机消息推送服务器,iOS App消息推送集成指南

iOS App消息推送集成指南

文档编辑

概述

机智云APP开源框架集成了百度推送与极光推送功能,只需修改部分代码即可快速使用。本文档就如何基于机智云APP开源框架快速集成消息推送功能,如需了解开源框架,请参考快速入门的文档。

快速集成极光推送

1. 申请极光AppKey与Master Secret

1.1 创建极光应用

cd454fbfad2fc79782dd73b131693b56.png

如图,需要上传苹果开发者证书,包括开发证书和生产证书以及证书的密码。

1.2 申请苹果证书

登陆苹果开发者中心:https://developer.apple.com, 申请并下载cer证书,双击证书从钥匙串打开,选中证书,并选择《登陆》和《我的证书》,右击证书,导出P12证书。

b672ad06107ca98b2457fdabb57308d9.png

点击《导出》会弹出以下弹框,设置证书名称及存储路径

40e7a863072303357597797f770fc86b.png

点击存储,弹出密码输入框,设置证书密码

34b077ca0e42e20ef80ee9a168973dd8.png

1.3 导入证书到极光

成功导入证书如下图,会显示《已验证》

7578c9100d7f35955e381f6de35298a0.png

至此极光应用已经创建完成,应用生成的AppKey和Master Secret也可以正常使用

b627436c201061df4760c04577ee97b4.png

2. 在云端绑定第三方推送

2.1 申请开通D3 Engine

7fe9e5a34f0f5af854d3f4aed3d4edfb.png

2089b6ccd8e2969feacce56b0382f9c7.png

开通D3 Engine需要机智云审核通过,点击开通服务后需要联系机智云FAE协助审核开通。

2.2 云端绑定极光推送

通过审核后,可以在服务一栏看到D3 Engine,依次点击“配置”->” 编辑推送平台”

7e07985810f0d0069cad9e357ce553c1.png

将从极光申请到的应用App Key和 Master Secret填写到下图,并选择测试环境。

注意:选择证书类型为《开发》时,只有在开发环境APP才能收到推送消息

ce3d8b90df1f9101be99865c56b7ed16.png

8cd841ea26f32b87aecaf0f3ffee95f9.png

2.3 利用D3 Engine创建推送规则

81db1e2eddfa45239077795926ab8566.png

点击项目列表->新建项目,下面将演示创建一个设备上线后给APP推送消息的规则。

82fbbd6e757324be4b9cd6bc043b54bf.png

拖动“设备数据”框到右边空白处,并双击该栏目。

52f8fe64c98833ddcc9e751be6b4f704.png

将触发方式设为“设备上线”,点击确定。

ae59f68d9fdc90ed88e68cccc0fe1659.png

双击“APP推送”,并设置推送的内容。

9dca38ede3fd0a045f15fe1462917941.png

da3c00f13bbd0d3a62a96cf5264108ed.png

ccdd7fbe37556d384afdc91a37062311.png

34a578a4b664ff2be5ffcaa37e6e9ac2.png

3. 修改UIConfig.json代码

填写jpush_app_key,以及将push_type设为1,表示选择极光推送,并且填写绑定了该极光应用的机智云应用于app_id、app_secret、product_key的值中。

217fc306c2fef637583f9aeaf4ee82c9.png

4. XCode配置推送

打开项目,选择Targets –> Capabilities,开启Push Notifications的按钮,即开启了项目的远程推送功能。

3a09966987959a9dd8685257e02b69f1.png

开启推送按钮后,会自动生成一个.entitlements文件,如下,其中的红框中的值表示推送环境,development表示开发环境,distribution表示生产环境。设置值为development时推送只在开发环境生效,distribution时推送只在生产环境生效。

5cf962aaa2721c451a172a8f3c2f6d6f.png

5. 启动虚拟设备

bdcf30dc3bc295da674b245e4248ebfd.png

6. 部署APP运行

通过以上步骤,该APP已具备了极光推送功能,部署到手机上后,申请帐号并登录,通过扫码即可绑定云端的虚拟设备。

4a509fb5ef21bc34b685ba9c6f7de210.png

7. 测试推送功能

关闭虚拟设备后,再次开启,即可看到手机收到了推送消息。

749ad73fc34285a2846bb8221b39846c.png

8. 极光自定义推送声音

D3引擎支持向每条规则设置特定的推送声音,主要需要做两个地方的修改。

8.1 设置推送声音

打开某条推送规则如下:

ca2bc7b561eb6dce0919533a244d69a2.png

选择APP推送方块(上图红框部分):

19f7426655e623f1b7d69019b4d2d6ec.png

点击《显示json样例》:

917e6484eaf359977f838b4245e856d7.png

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

}

}

}

具体如图:

5f4f3fe00e20882b4185f7463aaeec86.png

点击《确定》保存设置即完成推送声音的设置

注意:”badge”这个参数是设置推送后APP显示的角标内容,当设置为1时,APP收到推送显示的角标为1,不过按照正常的逻辑应该是APP收到多条推送会自动累加角标数,如果这里填1,那不管推送多少条通知,角标一直都为1。

如果要角标根据消息数量累加,即把”badge”: 1去掉即可,没有设置的话,极光会默认做累加操作。

8.2 添加推送声音文件到项目

当在D3成功设置自定义推送声音之后,每当有推送消息推到APP中,系统会先去APP中查找是否有相关名称的声音文件,有:则播放该声音,没有:则播放系统默认的声音。

推送声音的音频格式包括aiff,wav,caf 文件,并且播放时间必须在30s内,文件也必须放到 app 的 mainBundle 目录中,有其中一个条件不满足,系统都会播放默认通知声音来替代。

添加音频文件到项目如下:

35bbaf4848384107b2754d86bac82e62.png

至此自定义推送声音设置结束,推送相关消息APP将播放设置的音频。

快速集成百度推送

1. 申请百度API KEY

1.1 创建百度应用

3a68abeb18b7205b38efd07446fe46f5.png

如上图,需要上传苹果pem格式的开发证书和生产证书。

1.2 申请苹果证书

申请cer证书并导出p12的过程见《快速集成极光推送》的1.2部分,下图示范如何从p12证书导出pem证书

进入《终端》,输入如下命令即可导出pem证书。

1openssl pkcs12 -in -out -nodes

7210e39241ffe780ab5c943308a0e86e.png

1.3 导入证书到百度推送

上传pem证书到《1.1 创建百度应用》所示图中,上传证书成功,会显示《已验证》,并且生成百度推送的API KEY 和 SECRET KEY。

37bfb8710a659bc00d8f8c8177e58a12.png

2. 在云端绑定第三方登陆

2.1 申请开通D3 Engine

该步骤可参考《快速集成极光推送》的2.1部分

2.2 云端绑定百度推送

a65e137fe797beb93f2e636c6ee1d696.png

将从百度云推送平台申请到的应用API Key和Secret Key填写到下图,并选择测试环境。

注意:选择证书类型为《开发》时,只有在开发环境APP才能收到推送消息

1eacc9d5368c4887ffa7306ac13f13ee.png

ff383693411fdc852ed4c097907bc861.png

2.3 利用D3 Engine创建推送规则

该步骤可参考《快速集成极光推送》的2.3部分

3. 修改UIConfig.json代码

填写bpush_app_key,修改push_type为2,表示选择百度推送, 并且填写绑定了该百度应用的机智云应用于app_id、app_secret、product_key的值中。

7bf11686fc2c3527c0efcb350e782132.png

注意:这里也需要设置XCode推送,详情看《快速集成极光推送》的《4 XCode配置推送》

4. 修改百度推送的启动接口

百度推送的启动接口有一个pushMode参数,分别有两个值BPushModeDevelopment 和 BPushModeProduction。

BPushModeDevelopment:设置百度推送环境为开发环境

当设置的环境与当前APP的运行环境相符合是,推送才会生效。

4fd492bbad47f816b115bb2b9a428039.png

5. 启动虚拟设备

该步骤可参考《快速集成极光推送》的第5部分

6. 部署APP运行

通过以上步骤,该APP已具备了百度推送功能,部署到手机上后,申请帐号并登录,通过扫码即可绑定云端的虚拟设备。

478a1cafc437ba44a50bbdb7e818f532.png

7. 测试推送功能

关闭虚拟设备后,再次开启,即可看到手机收到了推送消息。

2b6779ca5b2eae46790e59b022b9f6e0.png

8. 百度自定义推送声音

8.1 设置推送声音

进入到推送声音设置界面如下,如何进入请参考极光的《极光自定义推送声音的8.1部分》

917e6484eaf359977f838b4245e856d7.png

获取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"

}

}

}

设置完成如下:

45064591433d1f674ff8a604487e31f6.png

点击《确定》保存,即完成推送声音的设置

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中所使用的相对应,如下图

035469acd825b96a9f4f3bf69dd7d458.png

3) 若依然失败,则在如下图位置打断点,打印result的值,确定具体的错误码,根据错误码提示来确认问题并修正。

d51369e2cf518a23804cae2a624b48a4.png

通常result有错,需要从下图所示代码来进一步确认。

e684d225ac07475d0fbbcbe14d401a51.png

3、极光推送如何设置角标的值

解答:[JPUSHService setBadge:0];

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值