[TOC]
1. 如何使用消息推送功能?
打包時開關設置中勾選推送功能,填寫推送綁定接口(Android還需要另外填寫Android推送接口,這個接口應只包含[ip地址]:[端口號]的形式);
app前端代碼中,在需要進行綁定用戶開始接收推送的時候,調用uexWidget.setPushInfo接口進行綁定(** 注意:特殊情況見常見問題3**);
如果代碼中調用了uexWidget.setPushState(0); 推送開關將會關閉,無法使用推送功能,重新調用uexWidget.setPushState(1); 即可打開推送功能。詳見文檔
接收到推送后,如果要處理推送內容,需要在頁面中調用,uexWidget.setPushNotifyCallback(要注意3.x和4.x引擎的調用方式是不同的,4.x兼容3.x,3.x引擎不兼容新方法),回調方法執行時表示到達了一個推送消息,此時調用uexWidget.getPushInfo接口獲取推送消息內容即可;
特殊情況,如果需要將推送token上報給業務系統中,然后由業務系統調用AppCan推送服務的API來進行向設備發送推送消息。則從客戶端獲取推送token的方式為:uexDevice.getInfo,傳參為11(傳參參考文檔),獲取到的就是推送token了,Android和iOS通用。
2. 推送收不到原因排查?
先看看問題1,了解消息推送功能的基本使用方法
檢查手機網絡是否連通
檢查推送后端服務是否正常
檢查應用是否在后臺,或者是否在js代碼中添加了監聽推送消息送達的代碼
應用在前臺時,不會自動提示在通知欄中,而是會通過js回調通知給前端代碼自行處理推送邏輯,比如談個alert或者跳轉頁面之類的操作;新版推送服務v4一般與EMM聯用,只需要進行uexEMM的啟動上報即可(打包選擇uexEMM插件),不需要uexWidget.setPushInfo接口調用
按照EMM用戶或者組織機構進行推送需要uexEMM登錄
Android專有問題
檢查打包時的Android推送接口是否配置正確
這個接口的形式是[ip]:[port],如:192.168.1.1:1883,不要添加http:// 或者tcp:// 之類的協議頭;檢查是否已經為該應用開啟了通知欄的提示
Android系統可以針對每個應用關閉消息提醒功能,需要開啟才可以看到通知欄推送提示,要勾選“顯示通知”;
iOS專有問題
如果已經升級了支持iOS10的打包服務,則需要在config.xml文件中配置推送相關的權限,否則打包后不僅iOS10無法收到推送,iOS10以下的也會收不到,具體配置方式參考:iOS10適配指南
打包使用的證書一定要支持推送功能,需要確認檢查一下;
推送后端的推送證書要配置正確;
每個應用的系統設置中也有對應的推送通知開關,首次啟動是也會彈出是否允許通知的提示,關閉后則無法使用推送功能了,必須重新開啟之;
3. 推送一條會收到兩條重復消息(或者收到一條消息但是打開數為雙倍)
當后臺的推送服務版本為4.0,EMM服務為3.3.3之后的版本時,如果調用過uexEMM.login(),則無需調用uexWidget.setPushInfo()接口,防止后臺重復綁定。
4.【Android】推送后臺進程經常被殺導致推送收不到?
應當引導用戶對自己的手機進行設置,把本應用加入后臺白名單中,具體方法如下:
終極辦法,針對所有手機:
進入任務管理界面時,通過長按或下滑等操作(不同系統各不相同,但操作簡單),將本應用加鎖,防止清理所有程序時,把本應用殺死。
華為手機有以下方式解決:
EMUI4.0
- 打開系統設置--開機自動啟動,把本應用設置為可開機自動啟動(在其應用列表中找到本應用名稱,打開開關);
- 打開系統設置--受保護的后臺應用,把本應用設置為受保護應用(在其應用列表中找到本應用名稱,打開開關);
- (可選操作)打開系統設置--省電管理中修改省電模式為“普通省電”(智能省電也不行,智能省電會在鎖屏后殺死后臺進程);
EMUI5.0
打開系統設置--權限管理,進入應用標簽,點擊進入本應用,選擇“設置單項權限”,打開“應用自動啟動”開關;
打開系統設置--電池--鎖屏清理應用,在應用列表中找到本應用,把開關設置為關閉(即不清理);
(可選操作)打開系統設置--電池,關閉省電模式(省電模式可能會在鎖屏后殺死后臺進程);
HTC手機:
打開系統設置--應用程序--列表中找到本應用進入詳情--點擊權限--允許保持喚醒狀態;
小米手機:
自啟動管理
打開安全中心--授權管理--自啟動管理--列表中找到本應用,打開開關;MIUI神隱模式
- 打開系統設置,選擇其他高級設置;
- 選擇電量和性能;
- 選擇神隱模式;
- 選擇應用配置;
- 找到本應用,點擊進入;
- 后臺配置選擇“無限制”,后臺網絡配置選擇保持聯網;
- OPPO手機
- 打開安全中心;
- 點擊權限隱私;
- 找到本應用,打開開關;
- 魅族手機
- 自啟動權限
- 打開手機管家,點擊權限管理;
- 選擇自啟動管理;
- 找到本應用,打開開關;
- 手機加速白名單
- 打開手機管家,點擊手機加速;
- 點擊屏幕右上角設置;
- 點擊手機加速白名單;
- 點擊添加白名單;
- 找到本應用,勾選之;
- 三星手機
- 打開系統設定;
- 選擇安全;
- 點擊應用程序許可;
- 找到并點擊本應用;
- 打開自動運行開關;
- VIVO手機
- 自啟動管理
- 打開i管家,點擊軟件管理;
- 選擇自啟動管理;
- 找到本應用,打開開關;
- 手機清理白名單
- 打開i管家,點擊右上角設置按鈕;
- 選擇加速白名單;
- 找到本應用,打開右側開關;
- 后臺耗電保護管理
- 打開i管家,點擊省電管理;
- 點擊最下方的后臺高耗電;
- 找到本應用,打開開關;
- 樂視手機
- 省電管理
- 打開管家,點擊省電管理;
- 選擇高級省電;
- 打開應用保護;
- 將本應用加入禁止自動清理;
- 自啟動管理
- 打開管家,點擊權限管理;
- 選擇自啟動管理;
- 找到本應用,打開開關;
- 一加手機
- 鎖屏運行權限
- 打開手機系統設置;
- 點擊應用與權限,選擇應用休眠;
- 如果應用休眠開關已經開啟,則點擊應用休眠管理;
- 列表中找到本應用,將本應用的開關開啟;
- 自啟動管理
- 打開手機系統設置;
- 點擊應用與權限,選擇自啟動;
- 找到本應用,打開右側開關;
- 其他手機可以參考上述手機的設置
進入手機設置或安全中心,找到自啟動管理,找到本應用并授權。