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