[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管家,点击省电管理;
- 点击最下方的后台高耗电;
- 找到本应用,打开开关;
- 乐视手机
- 省电管理
- 打开管家,点击省电管理;
- 选择高级省电;
- 打开应用保护;
- 将本应用加入禁止自动清理;
- 自启动管理
- 打开管家,点击权限管理;
- 选择自启动管理;
- 找到本应用,打开开关;
- 一加手机
- 锁屏运行权限
- 打开手机系统设置;
- 点击应用与权限,选择应用休眠;
- 如果应用休眠开关已经开启,则点击应用休眠管理;
- 列表中找到本应用,将本应用的开关开启;
- 自启动管理
- 打开手机系统设置;
- 点击应用与权限,选择自启动;
- 找到本应用,打开右侧开关;
- 其他手机可以参考上述手机的设置
进入手机设置或安全中心,找到自启动管理,找到本应用并授权。