APP消息推送及疑問解答
消息推送是每一個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消息推送及疑問解答