1. 程式人生 > >APP消息推送及疑問解答

APP消息推送及疑問解答

自定義 更新 震動 height fly 後臺應用 對話 安全 data

消息推送是每一個APP必不可少的一部分

就baiwei而言:

IOS的消息推送用的蘋果的服務器 APNS
Android 用的極光推送(JPush)
它們都是免費的

IPhone(APPLE)的工作機制可以簡單的概括為下圖:

iPhone自3.0之後推出消息推送機制,原理是消息由服務器統一處理。

技術分享圖片

圖中,Provider是指某個iPhone軟件的Push服務器,

APNS 是Apple Push Notification Service(Apple Push服務器)的縮寫,是蘋果的服務器。

上圖可以分為三個階段。

第一階段:Provider把要發送的消息、目的iPhone的標識打包,發給APNS。

第二階段:APNS在自身的已註冊Push服務的iPhone列表中,查找有相應標識的iPhone,並把消息發到iPhone。

第三階段:iPhone把發來的消息傳遞給相應的應用程序, 並且按照設定彈出Push通知。

技術分享圖片

從上圖我們可以看到。

1、首先是應用程序註冊消息推送。

2、 IOS跟APNS Server要deviceToken。應用程序接受deviceToken。

3、應用程序將deviceToken發給PUSH服務端程序。

4、 PUSH服務端程序把要發送的消息發給APNS服務。

5、APNS服務將消息發送給iPhone應用程序。

APNs和iPhone保持15分鐘的心跳式長連接,維護手機和服務器的聯系正常,否則手機會不停發起連接,直到連接到服務器為止。程序不必實時開啟和主動檢查更新,當收到APNs消息時,iPhone會彈出對話框Push消息並伴隨著聲音,用戶可以選擇“view”或者“close”。即使用戶當前處在離線狀態,用戶收到消息之後激活程序,再通過程序鏈接應用服務器下載郵件或者錄音。

------------------------------------------------------------------ -------------------------------------------------------------------------------------------------------

Android消息推送存在已知問題:

在APP被殺死的情況下,收不到後臺的消息推送。

推送成功了,為什麽有部分客戶端收不到推送?

1.程序上:請在logcat查看日誌,確定客戶端的jpush是否集成成功,網絡是否有問題
請看日誌或使用接口 isPushStopped來檢查是否調用了stoppush
檢查手機的JPush高級設置中是否設置了“允許推送時間”
2.設備上:手機的應用中是否勾選了“顯示通知”

3.由於第三方 ROM 的管理軟件需要用戶手動操作
小米【MIUI】
自啟動管理:需要把應用加到【自啟動管理】列表,否則殺進程或重新開機後進程無法開啟
通知欄設置:應用默認都是顯示通知欄通知,如果關閉,則收到通知也不會提示
網絡助手:可以手動禁止已安裝的第三方程序訪問2G/3G和WIFI的網絡和設置以後新安裝程序是否允許訪問2G/3G和WIFI的網絡
MIUI 7 神隱模式: 允許應用進行自定義配置模式,應用在後臺保持聯網可用,否則應用進入後臺時,應用無法正常接收消息。【設置】下電量和性能中【神隱模式】
華為【Emotion】
自啟動管理:需要把應用加到【自啟動管理】列表,否則殺進程或重新開機後進程不會開啟,只能手動開啟應用
後臺應用保護:需要手動把應用加到此列表,否則設備進入睡眠後會自動殺掉應用進程,只有手動開啟應用才能恢復運行
通知管理:應用狀態有三種:提示、允許、禁止。禁止應用則通知欄不會有任何提醒
魅族【Flyme】
自啟動管理:需要把應用加到【自啟動管理】列表,否則殺進程或重新開機後進程無法開啟
通知欄推送:關閉應用通知則收到消息不會有任何展示
省電管理: 安全中心裏設置省電模式,在【待機耗電管理】中允許應用待機時,保持允許,否則手機休眠或者應用閑置一段時間,無法正常接收消息。
VIVO【Funtouch OS】
內存一鍵清理:需要將應用加入【白名單】列表,否則系統自帶的“一鍵加速”,會殺掉進程
自啟動管理:需要將應用加入“i管家”中的【自啟動管理】列表,否則重啟手機後進程不會自啟。但強制手動殺進程,即使加了這個列表中,後續進程也無法自啟動。
OPPO【ColorOS】
凍結應用管理:需要將應用加入純凈後臺,否則鎖屏狀態下無法及時收到消息
自啟動管理:將應用加入【自啟動管理】列表的同時,還需要到設置-應用程序-正在運行裏鎖定應用進程,否則殺進程或者開機後進程不會開啟,只能手動開啟應用
三星
內存一鍵優化:需要將應用加入【白名單】列表,否則系統內存優化後,會殺掉應用進程

--------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------

疑問解答:

問題一:魅族手機收不到消息推送了

再後來才發現,不是收不到了,而是放到了不重要通知裏面了。

怎麽放到正常通知裏面呢,因為我還有通知的震動和聲音的測試,各種百度,各種調功能權限,還是不行。

最後,終於得到一點信息,那就是魅族通知有記憶功能

解決辦法就是,多發幾次通知,一定要點開,記住,一定要點開(當然,點擊要有個動作才行,要不你還得左滑刪除,這樣是不行的),這樣多測試幾次。

我大概測試了不到10次,然後就從不重要通知移除了,變成了有聲音震動的正常通知了。

問題二:Android APP切換到後臺、或手機鎖屏後自動清理後臺應用以延長待機時間,導致APP不能收到消息推送

平時我們後臺的“一鍵清理”,總是一言不合就關閉全部APP,為了保障APP不為任何外部力量撼動,給它“加把鎖”吧

解決辦法之一:

點擊左下角菜單鍵,進入多任務後臺,選定需鎖定APP,下滑,左上角出現上鎖標記,此時一鍵清理,鎖定APP不會被關閉!

技術分享圖片技術分享圖片

技術分享圖片 技術分享圖片

APP消息推送及疑問解答