> uniPush可为IOS和安卓APP用户推送离线消息;推送消息配置过程比较繁琐,请耐心多翻阅文档,建议开发者进行配置
##### 第一步、开通uniPush
1. 请查看[uniPush官方开通指南](https://ask.dcloud.net.cn/article/35716)
2. 其中的`iOS推送证书`,若未配置,则IOS系统用户,无法收到离线推送消息,申请IOS推送证书的流程在上面的`开通指南`中有介绍,需要注册`苹果开发者网站`费用99美元(688人民币),该费全部由苹果官方收取
3. 其中的`厂商推送参数设置`,表示向`魅族、OPPO、华为、小米、VIVO等`厂商申请离线推送消息后配置到uniPush后台,不申请,则对应品牌用户无法收到离线推送消息
4. 配置过程中出现的`应用包名/应用标识`是随便取的,比如`addon.fastim`,需和`厂商`推送后台的包名保持同步
##### 第二步、配置后台
1. 成功注册uniPush、建立应用后,打开应用,获取应用`Uni Push`的`AppID`、`AppKey`、`MasterSecret`、`Android应用标识`全部填入后台的Im配置->消息推送配置中,并开启消息推送功能->保存设置
##### 第三步、编译自定义调试基座
1. `HBuilder X`编辑器上,登录与`uniPush`相同的账户(编辑器左下角可切换账户)
2. `HBuilder X`内打开Im`uniapp`项目后,运行->运行到手机或模拟器->制作自定义调试基座,在打开的窗口中`Android包名`和IOS的`BundleID(AppID)`请与`后台推送配置设置的包名`、`uni Push配置`、`厂商的推送后台配置的包名`保持一致
3. 完成基座打包后:运行->运行到手机或模拟器->运行基座选择->自定义调试基座
4. 接下来,运行到设备即可接收到推送消息,若收不到,请检查通知权限、厂商推送配置、包名是否统一、以及本文档下方的各厂商奇怪规定
##### 第四部、问题排查
* Im系统已测试`IOS`、`华为`、`小米`、`OPPO`、`魅族`的离线消息推送可以送达,若您仔细检查了自己的各项配置,并更换其他设备后任然无法接受到推送消息,请不要气馁并[与我们取得联系](https://doc.fastadmin.net/fastim/1034.html)
* [uniPush官方常见问题](https://ask.dcloud.net.cn/article/id-36611__page-4)
* [uniPush官方使用指南](https://ask.dcloud.net.cn/article/35622)
##### 各厂商推送的一些奇怪规定
###### 华为
1. 必须安装“华为移动服务`HMS Core`”
2. 通知太多会自动折叠
3. 可能被归类到`静默通知`(只推送到通知栏,不响铃,不震动,不提醒),好像是根据APP历史推送的消息来分类的,`建议打开APP的营销通知和关闭静默通知`
###### VIVO
1. vivo部分机型默认关闭APP的通知
2. vivo\[运营消息\],一个设备一天只能收到5条离线消息,非运营消息需要于VIVO官网申请
3. 1个自然日内相同文案的运营消息给同个设备发,vivo会在客户端做去重处理
4. 通知文案中不能包含`测试、test`、`纯数字`、`纯表情`、`符号`或者`符号+数
字`、`表情+数字`、`表情+符号`
zKS0o09ZySZRo1PiP4DowQ==
##### 小米
* 推送消息可能被归类到`不重要通知`,可通过修改APP权限规避
##### OPPO
* OPPO部分机型默认关闭APP通知权限
* 需要将通知权限下的`Default`通道权限也打开。
##### 魅族
* 消息可能被归类到魅族手机右上角`魅族消息盒子`
* 收不到推送时,请尝试清除缓存:手机->系统设置->应用管理->所有应用->点击右上角->显示系统服务应用->找到`推送服务`和`您自己的App`,分别进行`清除数据`,然后重启手机。
##### 各厂商推送申请地址
* 华为[https://developer.huawei.com/consumer/cn/](https://developer.huawei.com/consumer/cn/)
* 小米[https://dev.mi.com/console/](https://dev.mi.com/console/)
* 魅族[http://open.flyme.cn/](http://open.flyme.cn/)
* oppo[https://open.oppomobile.com/](https://open.oppomobile.com/)
* vivo[https://id.vivo.com.cn/](https://id.vivo.com.cn/)
* `安卓`注册/申请推送账户中若有疑问,[请参考](https://docs.getui.com/getui/mobile/vendor/vendor_open/)
* `IOS`申请推送证书,[请参考](https://docs.getui.com/getui/mobile/ios/apns/)
##### 常见问题
###### 1\. 什么是离线、在线消息推送
* 在线消息推送指用户的`WebSocket`已经断开,但手机APP任在前台或后台运行,任然可以向用户推送新的消息
* 离线消息推送指用户`WebSocket`已经断开且手机APP未在后台运行,任然可以向用户推送新的消息,用户手机必须开启APP的推送权限
###### 2\. 为什么又要申请uniPush还要申请各大厂商的推送账户
* uniPush可以将各大厂商的推送Api聚合在一起,只需向对应厂商申请推送功能后,简单配置即可,而实际进行离线消息推送还是各大厂商实现的,uniPush实现了在线推送