一、推送成功收不到訊息,推送返回:{"message":"success","requestID":"1523868*2842718","resultcode":0}
排查步驟:
1、網路不穩定,切換穩定網路進行測試;
2、檢查手機是否為EMUI8.0.0系統,如果是早期的EMUI8.0,則要升級嘗試(在手機會員服務——服務——升級嚐鮮),或者用targetversion 26以下的進行編譯來規避這個問題。EMUI版本太低、小於4.1也是不支援的;
3、檢查終端token是否正確,在聯盟後臺進行推送,如果聯盟後臺推送失敗則是token已失效,或者手機配置有問題;進行token檢查和手機許可權設定,如果推送成功,那麼之前失敗則是呼叫介面時引數配置錯誤導致;
4、如果是收取通知訊息失敗,檢查通知的playload中的msg、appPkgName等配置是否正確;
5、檢查華為移動服務的快取問題,嘗試清除資料及快取,並停止華為移動服務;
6、檢查CP是否使用老版本Push,老版本SDK會出現訊息延時較明顯以及收不到推送的情況,需儘快切換到新版本;
7、蒐集日誌(詳情見日誌抓取辦法),參考Push日誌解讀進行排查。
二、Gettoken返回0,無法進入onToken函式,無法收到廣播。
1、自定義的Receiver是否繼承華為PushReceiver;
2、AndroidMainfest配置是否完善,請對照現網配置進行檢查;
3、儲存日誌,併發過來;
4、清理華為移動服務和應用的快取、資料,重啟手機。再進入應用試一下;
5、如果日誌中出現 get token:end 0 和com.huawei.android.pushagent.PushServiceE/PushLog2551: [ReceiverDispatcher-230]responseRegisterTokenFAILED:1(android/PushCommandProcessor.java:557) 表示此處華為移動服務狀態是正常的,但是請求伺服器出現異常。檢查聯盟推送狀態是否為“已開通”,狀態為開通中則是錯誤的。
如果問題還未得到解決可以重複步驟4,準備日誌輸出,執行測試應用,列印日誌。
三、如何在華為開放平臺檢視訊息是屬於運營訊息還是通知系統訊息?我們推送的時候帶了importance欄位,但是不能確定該欄位是否生效。
華為的通知訊息透過提醒方式來顯示該條訊息的型別。importance欄位只有在申請自分類權益後才能生效。
申請自分類權益參考:自動權益申請
四、離線角標不顯示。
1、首先需確認是透過哪種方式使用角標。
第一種:華為提供的訊息體加欄位方式,這種方式不管應用線上或者離線,角標都會正常展示。
參考資料:桌面角標
第二種:您在客戶端程式碼設定角標,這種情況,應用離線的情況可能是沒有對收到的離線訊息進行處理所以角標沒有加上。
參考資料:華為桌面角標開發指導書
2、在確認使用的角標方式後進行排查。
如果使用了第一種,確認離線訊息的訊息體是否有add_num和set_num欄位;如果是第二種,需確認收到離線訊息之後是否呼叫程式碼加上角標。
五、關於回執問題處理。
1、應用裝置不線上:損毀,斷網,關機,不在伺服器等(大多情況);
2、使用者關閉推送許可權;
3、回執只會傳送一次,在網路異常或者伺服器異常等情況時會導致請求失敗。
六、CP關於https://api.push.hicloud.com域名的使用問題。
SDK 2.0 URL:https://api.push.hicloud.com/... ?ha_source=hms1
SDK 3.0+ URL:https://push-api.cloud.huawei...[appId]/messages:send?ha_source=hms1
SDK 2.0 URL是2.0版本使用的介面,可以替換為最新版,替換的同時更新SDK版本到6.7.0,參考最新的檔案做好遷移工作,遷移完成之後可以測試一下推送功能是否正常使用,有異常及時處理。
可參考SDK版本更新說明:版本更新說明。
瞭解更多詳情>>
訪問華為開發者聯盟官網
獲取開發指導檔案
華為移動服務開源倉庫地址:GitHub、Gitee
關注我們,第一時間瞭解 HMS Core 最新技術資訊~