Android App收不到推送的消息

推送功能可以算是每個App的都會開發的基本功能了,服務端可主動向其用戶推送各類消息,結合精準的用戶畫像分析,給合適的用戶在合適的場景下推送合適的內容,大幅度提升消息點擊率、用戶活躍度和留存率。

推送把控不當適得其反,引起弊端,騷擾用戶,提高卸載率,過多的無價值內容,使用戶反感。

就這麼一個最基本的功能,讓無數Android開發噴血,叫罵呀!App被殺死後,它是接受不到第三方推送的,那怎麼辦呢?那就想辦法不被殺死了,嘗試各種方法,雙進程雙服務互拉起,播放無聲音樂,一像素等等,太流氓了,不可能做到保活的。Android系統越來越完善,權限限制也越來越大,第三方系統更是把控的很嚴格,真的太難了!!!

應該會羨慕iOS吧,推送證書一申請,接收方法一加入,ok了~~~


第三方系統收不到推送的消息

由於第三方 ROM 的管理軟件需要用戶手動操作

  • 小米【 MIUI 】

    • 自啓動管理:需要把應用加到【自啓動管理】列表,否則殺進程或重新開機後進程無法開啓
    • 通知欄設置:應用默認都是顯示通知欄通知,如果關閉,則收到通知也不會提示
    • 網絡助手:可以手動禁止已安裝的第三方程序訪問 2G/3G 和 WIFI 的網絡和設置以後新安裝程序是否允許訪問 2G/3G 和 WIFI 的網絡
    • MIUI 7 神隱模式: 允許應用進行自定義配置模式,應用在後臺保持聯網可用,否則應用進入後臺時,應用無法正常接收消息。【設置】下電量和性能中【神隱模式】
  • 華爲【 Emotion 】

    • 自啓動管理:需要把應用加到【自啓動管理】列表,否則殺進程或重新開機後進程不會開啓,只能手動開啓應用
    • 後臺應用保護:需要手動把應用加到此列表,否則設備進入睡眠後會自動殺掉應用進程,只有手動開啓應用才能恢復運行
    • 通知管理:應用狀態有三種:提示、允許、禁止。禁止應用則通知欄不會有任何提醒
  • 魅族【 Flyme 】

    • 自啓動管理:需要把應用加到【自啓動管理】列表,否則殺進程或重新開機後進程無法開啓
    • 通知欄推送:關閉應用通知則收到消息不會有任何展示
    • 省電管理: 安全中心裏設置省電模式,在【待機耗電管理】中允許應用待機時,保持允許,否則手機休眠或者應用閒置一段時間,無法正常接收消息。
  • VIVO【 Funtouch OS 】

    • 內存一鍵清理:需要將應用加入【白名單】列表,否則系統自帶的“一鍵加速”,會殺掉進程
    • 自啓動管理:需要將應用加入 “i 管家”中的【自啓動管理】列表,否則重啓手機後進程不會自啓。但強制手動殺進程,即使加了這個列表中,後續進程也無法自啓動。
  • OPPO【 ColorOS 】

    • 凍結應用管理:需要將應用加入純淨後臺,否則鎖屏狀態下無法及時收到消息
    • 自啓動管理:將應用加入【自啓動管理】列表的同時,還需要到設置-應用程序-正在運行裏鎖定應用進程,否則殺進程或者開機後進程不會開啓,只能手動開啓應用
  • 三星
    • 內存一鍵優化:需要將應用加入【白名單】列表,否則系統內存優化後,會殺掉應用進程

試試接入各大廠商通道

Huawei PUSH(華爲推送服務)是華爲爲開發者提供的消息推送平臺,建立了從雲端到終端的消息推送通道。開發者通過集成華爲PUSH服務可以將最新信息即時通知用戶,構築良好的用戶關係,提升用戶的感知度和活躍度。

一、華爲推送服務開發準備必備步驟主要包括:

  1. 註冊認證成爲開發者
  2. 配置應用簽名
  3. 創建產品和應用
  4. 開通推送服務
  5. 獲取推送服務參數
  6. 下載SDK
  7. 集成工程

二、客戶端開發主要包括:  

  1. 初始化Agent
  2. 申請PUSH Token
  3. 實現自定義廣播接收消息
  4. 註銷PUSH Token(可選)
  5. 是否接收PUSH通知欄消息(可選)
  6. 是否接收PUSH透傳消息(可選)
  7. 展示應用角標(可選)

三、服務端開發主要包括:

  1. 應用服務器獲取AccessToken
  2. 應用服務器發送PUSH消息
  3. 通過消息回執實現自定義推送(可選)
  4. 應用服務器發送應用角標(可選)

客戶端開發:使客戶端APP具備單條PUSH消息的發送和接收能力。

        STEP1、開發者的APP集成HMS SDK,調用getToken接口從PUSH服務器獲取到PUSH Token。
        STEP2、開發者的APP對於獲取到的PUSH Token需要上報到開發者自己的服務器APP Provider Server上。

服務端開發:實現APP服務器批量發送通知消息。

        STEP3、開發者利用服務器上保存的PUSH Token向對應的終端設備發送通知消息。
        STEP4、消息攜帶的PUSH Token作爲鑑權和路由機制會通過華爲PUSH平臺將消息發送到最終用戶設備上。


用過極光推送的都會涉及到設置別名或標籤,可是華爲push沒有別名和標籤,只有PUSH Token,翻了~和極光不能簡單粗暴的一起使用了。

看華爲PUSH服務文檔之前是這麼想的:

用設備類型進行區分使用哪家PUSH服務,設備爲華爲的,那就走華爲PUSH服務。設備爲小米的,則走小米PUSH服務。。。除大廠有PUSH服務的走極光PUSH服務。太TM天真了。。。

那就只有PUSH Token的問題,咱接着往下想:

那針對華爲做一個token與賬戶綁定,每個設備的上每個應用的Token都是唯一存在的。假設A賬戶綁定了token,然後切換B賬戶又和token綁定了,那給A和B推送的時候是指定的同一個token,此時服務器需要去把A賬戶綁定的token註銷掉,不然給A賬戶的推送消息就會被B賬戶收到。但是後臺開發回覆說這樣做不太好處理,容易出錯!!!

還有五六家PUSH服務情況各異,管理起來真的是太難了!

罷了罷了,不想了,腦仁疼!

這麼搞的話也挺耗成本的,又沒有那麼多測試機,還是選擇充錢吧!

極光VIP服務廠商通道(華爲,小米,魅族,FCM),它是根據app的月在線用戶峯值來進行收費的。

何以解憂?唯有充錢!

廠商通道相關參數申請教程>>

極光廠商通道集成指南>>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章