华为推送服务(Huawei PUSH)是华为为开发者提供的消息推送平台,创建了一条从云端到用户客户端的消息推送通道,开发者可以通过集成Huawei PUSH服务将最新的信息以通知或者透传信息的形式传递给用户。
Huawei PUSH的原理如下:
-----------------------------------------------------------------------------------------
Huawei PUSH服务可以发送两种消息给客户端:通知栏消息和透传信息。
1.通知栏消息:顾名思义就是显示在设备的通知栏的信息,主要基于Android的Notification。实现通知栏一般需要如下几个步骤:
①创建通知栏管理工具
②构建通知栏构造器
③给构造器设置参数
④发送请求
下面给出一段Android原生实现通知栏的代码,仅供参考:
//创建通知栏管理工具
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//实例化通知栏构造器
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
//设置Builder
//设置标题
mBuilder.setContentTitle("我是标题")
//设置内容
.setContentText("我是内容")
//设置大图标
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
//设置小图标
.setSmallIcon(R.mipmap.ic_launcher_round)
//设置通知时间
.setWhen(System.currentTimeMillis())
//首次进入时显示效果
.setTicker("我是测试内容")
//设置通知方式,声音,震动,呼吸灯等效果,这里通知方式为声音
.setDefaults(Notification.DEFAULT_SOUND);
//发送通知请求
notificationManager.notify(10, mBuilder.build());
2.透传信息:即传送网络无论传输业务如何,只负责将需要传送的业务传送到目的节点,同时保证传输的质量即可,而不对传输的业务进行处理。透传消息,就是消息体格式及内容,对于传递的通道来说是不去过问的,通道只负责消息的传递,对消息不做任何处理,当客户端接收到透传消息后,由客户端自己来决定如何处理消息。
Huawei PUSH官网建议使用通知栏消息。
-----------------------------------------------------------------------------------------
1.支持单发以及群发机制,可以同时给一个或者多个设备发送消息
2.支持Android平台多用户条件下向不同用户发送消息
3.当终端用户不在线时,支持消息缓存能力。当设备不在线时Huawei PUSH会将消息缓存,等到设备上线后再次推送给用户。缓存消息默认保存24小时,最长保存15天
4.支持PUSH实时消息回执
5.支持通知栏消息和透传消息两种方式。
Huawei PUSH 才用了统一消息中心(Notification Center)的能力,当华为手机收到通知栏消息时由Notification Center统一展示消息,不需要拉起应用的进程。当用户点击通知栏消息时才会拉起应用进程。
说明:
支持Notification Center功能的手机:部分EMUI4.0和4.1的手机,以及EMUI5.0及以后的华为手机。
在非华为手机上面 Huawei PUSH也会有类似于Notification Center的能力,依赖于华为移动服务(Huawei Mobile Services),不过在非华为手机上HMS会受到限制,可能会影响华为推送的到达率。
-----------------------------------------------------------------------------------------
1.Huawei PUSH 推送消息送达率约束条件
①终端设备是否在线
②终端设备集成HMS SDK的应用是否被卸载
③移动网络是否稳定
④终端设备的安全控制策略
④不同厂商设备对于Huawei PUSH的支持度
2.不同厂商设备对于Huawei PUSH 推送消息的限制
从原则上说,只要安装了华为移动服务(HMS APK)的Android终端设备就可以支持Huawei PUSH服务。
①华为Android终端设备,设备出厂自带HMS APK,华为手机管家可以拦截Android广播消息,Push消息因此也会被拦截。
②非华为Android手机(小米、VIVO、OPPO、三星、酷派、中兴等),需要先安装HMS APK。某些厂商的手机可能会删除华为的进程,导致推送消息无法送达。
3.Huawei PUSH 推送消息的及时性
推送消息首次发送,且应用在线联网的情况下,时延在1s以内,如果受限于网络环境,则时延无法保证。
4.Huawei PUSH 推送消息的大小限制
推送消息支持的Android APP包名最大为128字节,消息内容最大为2KB。
5.中国境内支持Huawei PUSH服务的地区:中国大陆、中国香港、中国澳门、中国台湾。
其余国家和地区是否支持Huawei PUSH服务,请参阅Huawei PUSH官方文档
-----------------------------------------------------------------------------------------
Huawei PUSH 官方文档地址: https://developer.huawei.com/consumer/cn/service/hms/pushservice.html
华为开发者联盟官网地址:https://developer.huawei.com/consumer/cn/console#/serviceCards/AppService