公司新項目包含通知功能,領導要求使用信鴿推送,因為之前使用的不是信鴿推送,所以也是在這個上面遇到了一些小坑,特此記錄下來。
集成前首先要確認自己的項目證書里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,所以代碼較以往有些不同,不同之處見下圖:
至此,信鴿推送已經完成了。祝大家新年快樂!謝謝