呼叫推送介面返回成功,手機端未收到通知欄訊息,該如何自檢?

HMSCore發表於2022-05-12

一、問題場景

某位開發者呼叫API介面推送訊息,請求返回:{"code": "80000000","msg": "Success","requestId": "16233092**287602020201"}。返回"code": "80000000"表示該請求是成功的,但是手機端未收到通知欄訊息。

二、原因分析排查

首先可以排查訊息體中是否存在以下幾種欄位使用不當的情況:

情況1: validate_only的值是true

validate_only欄位控制當前是否為測試訊息,測試訊息只做格式合法性校驗,不會推送至使用者裝置。也就是說validate_only值為true時,即使請求返回"code": "80000000",伺服器也不會給端側推送訊息。

情況2:沒有使用notification欄位

訊息體中有message.data,沒有message.notification和message.android.notification,訊息型別為透傳訊息。透傳訊息透傳給應用,不會在通知欄展示。

情況3:foreground_show的值是false

foreground_show控制前臺應用的通知處理,當該值被設定為“false”且應用在前臺時,通知訊息的全部內容將會通過onMessageReceived(RemoteMessage message)方法傳遞給應用,不展示通知欄訊息。

前臺應用的通知處理參考文件

如以上3種情況都不符合,可使用Push自助分析功能查詢訊息傳送情況:

登入AppGallery Connect網站,點選“我的專案”,在專案列表中找到自己的專案,通過“增長 > 推送服務 > 自助分析(Beta)”頁籤進入。

輸入傳送訊息時的“token”和推送服務返回的“requestId”後,點選查詢按鈕即可檢視訊息傳送情況。

這上面的訊息記錄更新的比較慢,如果未查詢到訊息處理,請在推送請求半小時後再查詢。Push自助分析參考文件

如果按以上排查步驟仍未能找到原因,請檢視技術支援文件。

瞭解更多詳情>>

訪問華為開發者聯盟官網
獲取開發指導文件
華為移動服務開源倉庫地址:GitHubGitee

關注我們,第一時間瞭解 HMS Core 最新技術資訊~

相關文章