公司新项目包含通知功能,领导要求使用信鸽推送,因为之前使用的不是信鸽推送,所以也是在这个上面遇到了一些小坑,特此记录下来。


集成前首先要确认自己的项目证书里https://developer.apple.com是否选择了push notification选项,如果没有选择则点击下部的Edit进行编辑。(注:推送证书分为开发和生产两种)编辑完成后就可以去制作推送证书了,点击Creat Certificate 进行制作;



之后创建推送证书的时候需要导入CSR文件(Certificate Signing Request);

之后在上张图添加生成后点击Download进行下载安装(原谅我当时忘记截图了)


然后打开腾讯信鸽平台,选中接入推送应用


进入应用,注意我框出来的部分是主要操作:

先讲一下上传证书的方法,添加测试设备将在之后的代码部分讲述,这里腾讯要求上传的是pem格式的证书,如下图所示:

生成pem证书的步骤如下;


之后根据腾讯的信鸽文档,在终端生成pem证书,我这里把证书生成后存放在桌面上了;


至此证书部分就全部完成啦!

下面讲一下在项目里是怎么集成的:
在项目中的Capabilities勾选下面选项

下载信鸽 SDK, 解压缩;
将 XGSetting.h, XGPush.h 以及 libXG-SDK.a 添加到工程;(我在这里遇到了一个坑,我把这些文件导入项目的时候总是报找不到路径的错误,可是我明明很老老实实且本本分分的导入了啊,最后我一怒之下把添加的库删掉,然后直接从Demo里拖到工程里,Bulid一下,完美结束这个坑)
添加以下库/framework 的引用 CoreTelephony.framework, SystemConfiguration.framework, UserNotifications.framework, libXG-SDK.a 以及 libz.tbd.效果图就不上了
下面。。。上代码:
在AppDelegate里面的didFinishLaunchingWithOptions添加以下代码:


其他的按照信鸽文档或者信鸽的官方Demo添加代码就行了,下面补充一下获得设备token的代码,补上上面添加设备token的坑;

然后在信鸽应用的后台添加设备token就可以测试啦

特别注意的是,在实际操作时,iOS9系统和iOS10获得推送有一定的区别,在iOS9系统下,我设定了当设备在使用时如果接收到推送,利用本地通知进行推送以保证最佳的用户体验。
最后,当用户点击通知的时候,可以设置跳转到对应的页面,也可以直接显示通知消息,我这里暂时使用直接显示通知消息。显示时我使用了弹出UIAlertController的方式,因为是在AppDelegate里面创建的UIAlertController,所以代码较以往有些不同,不同之处见下图:

至此,信鸽推送已经完成了。祝大家新年快乐!谢谢

网友评论