Android整合信鴿推送【華為廠商通道之坑】
阿新 • • 發佈:2019-01-03
Android整合信鴿推送(華為通道)之坑
公司App之前用的是騰訊信鴿推送【V3.2.2之前版本】
前不久信鴿新增加了華為小米魅族廠商通道【V3.2.2之前版本】,然後就趕緊升級新增華為小米魅族廠商通道,提高推送成功率。
首先按照流程開始準備工作
- 第一步升級信鴿SDK到
v3.2.2
,一切正常; - 新增新的依賴替換舊的Jar,新增混淆程式碼;
- 新增華為小米魅族推送程式碼以及manifest中進行各種註冊許可權;
開始除錯工作
- 單獨使用信鴿推送:開啟APP訊息透正常/殺死APP後還是也正常收不到訊息,走短息通道了(以前就是這個鬼樣子)
- 首先是用華為手機在測試伺服器上鼓搗了一下不行;現【華為系統推送渠道】需要
打包apk
- 於是打包apk;直接登入賬號,註冊成功一切和順利。在信鴿推送平臺上按賬號推送訊息透傳、推送欄都是秒到,感覺這樣信鴿推送整合華為通道就ok啦
出問題啦!
- 初步測試ok後,換了個賬號再試;在信鴿推送平臺上無論是訊息透傳還是通知欄,apk開啟還是殺死,
推送就是收不到
; - 開啟log發現我切換賬號以後日誌就是這樣子(華為通道必須打包才行,沒法debug):
在信鴿開發文件【客戶端返回碼】中提示:
10002
:正在執行註冊操作時,又有一個註冊操作到來,則回撥此錯誤碼;
初步定位
:每次賬號退出時,呼叫信鴿解註冊失敗
,App還註冊狀態,再次登入就信鴿重複註冊導致1002- 於是解除安裝apk【解註冊】,重新安裝登陸,推送,一切正常;退出再次登入又是10002,這樣確定是退出時解註冊的程式碼問題了;
- 信鴿程式碼前任Android整合的,都沒有熟悉程式碼:
信鴿V3.2.2由於整合廠商通道
,信鴿部分SKD中API做出修改,而且在V3.2.2失效
- 修改
註冊API
和解註冊API
再在信鴿推送官網全部正常,本想華為通道總可以OK了吧。 - 很快又發現在
公司服務端
推送的訊息華為手機收不到,但是是信鴿官網
推送能收到,那應該是服務端
程式碼問題
的不是Android端的問題吧 - 服務端開發檢查後說他那程式碼沒問題,他在
信鴿SDK
和信鴿官網一致
,而且服務端推送返回結果碼是:0
,問題就應該是在Android端
,服務端都是技術大牛他們那麼一說,結果問題回到Android端了 - 折騰了很久沒有搞定,最後之前Android開發[轉JavaEE服務端],他說自己搞個
服務端信鴿demo
demo所有推送華為手機秒到
,確定是服務端程式碼的問題 - 結果服務端的大佬發現問題是服務端
SDK沒有升級
,之前用pythonV1.1.8版本SDK
,現在信鴿官網
pythoySDK還是V1.1.8
,但是下載解壓後發現裡面的SDK版本變成V1.1.8.3
了;坑呀 - 最後一個比較折騰的是:華為推送通道收到
透傳訊息
時,會拉起App的(例如:微信QQ)並且提示收到訊息,但我App沒有拉活,最後才發現是華為有個“自啟管理”
只有開啟App的自啟許可權
在收到透傳訊息會拉起App【微信QQ釘釘之類在華為應用商店前100
的可以聯絡華為在系統中預設開啟
的自啟許可權】
總結
- 信鴿整合華為推送中遇到下面幾個坑 ,小夥伴留心啦:
- 測試華為通道時
apk必須打包
;有點像整合微信支付需要帶正式的簽名之類、- 信鴿舊版升級的在
V3.2.2
中之前的部分api
已經失效
需要注意【尤其是註冊和解註冊
】;服務端SDK升級
需留心,以Python服務端SDK
為例:之前SDK是V1.1.8
,但已經升級後SDK
在官網寫的還是V1.1.8
,下載解壓才發現已經升級為V1.1.8.3
;據說連個升級說明都沒有,信鴿團隊就是這麼自信;- 還有是在信鴿的SDK訊息透傳
onTextMessage
(Context context,XGPushTextMessage
message)的XGPushTextMessage 中有個customContent
對content作為補充的欄位,但是在華為推送
透傳中只有title
和content
欄位,結果就是在V3.2.2SDK中信鴿團隊無情將customContent欄位拋棄
了 ,如果有使用該欄位的小夥伴要及時修改
最後就修改不熟悉的程式碼先仔細看看一遍程式碼看一遍文件了,不然小心事倍功半了*