推送消息的到达率除了用户终端的网络信号影响之外,有很大一部分是系统屏蔽原因造成的,我们经常提的一个词“app保活”其实就是为了提升推送消息的到达率,但是及时给app做了保活仍然会被系统杀死,推送消息也是有几率被拦截的,并且app做了保活之后会加大用户手机的耗电量,对用户体验也是一种伤害。其实Android都是留了后门的,这个后门就是手机厂商的厂商通道,厂商通道拥有系统内的最高权限,因此通过厂商通道发送出去的透传消息是不会被系统拦截的,能够有效的提升推送消息的到达率。下面就以MobPush免费推送消息服务为例,介绍一下厂商通道的集成。
MobPush接入华为、小米、OPPO和魅族官方提供的系统级推送通道。在华为、小米、OPPO和魅族的设备上,推送消息将能够通过对应的系统推送通道抵达终端,并且无需打开应用就能够收到推送,以此提高在华为,小米和魅族三种设备上的推送送达率,具体的推送通道集成如下:
一、mob官网后台配置信息
1、打开http://www.mob.com,登陆到后台,添加MobPush推送SDK:
2、进入到特殊厂商配置选项:
3、进入后按需配置各个推送平台的配置信息:
FCM部分配置:
1. 进入到FCM服务配置选项:
2. 进入后进行基础配置:
FCM证书:点击上传证书进行上传。
在上传证书之前,需要现在Firebase的控制台下载证书,然后再点击上传。
在左上角的Project Overview的图标那里选择项目设置,在右侧选择服务账号,Firebase Admin SDK 配置代码段切换到Java,点击生成新的私钥,保存下来,进行上传到Mob管理后台的FCM证书。
推送默认标题:
设置推送标题,在推送是通知消息标题采用此设置的标题,如果不设置则采用MobPush默认标题。
配置完成点击保存配置,即可
二、客户端集成配置信息
1、和快速集成一样,添加引用jcenter(在项目根目录的build.gradle中添加)
buildscript {
repositories {
jcenter()
}
dependencies {
// 注册MobSDK
classpath 'com.mob.sdk:MobSDK:+'
// 注册google services FCM推送需要
classpath 'com.google.gms:google-services:4.0.0'
}
}
2、在快速集成的基础上添加gradle的推送插件配置信息(在使用MobPush模块的build.gradle中添加)
// 添加插件
apply plugin: 'com.mob.sdk'
// 在MobSDK的扩展中注册MobPush的相关信息
MobSDK {
appKey "替换为mob官方申请的appkey"
appSecret "替换为mob官方申请的appkey对应的appSecret"
MobPush {
//集成其他推送通道(可选)
devInfo {
//华为推送配置信息
HUAWEI{
appId "华为的appid"
}
//魅族推送配置信息
MEIZU{
appId "魅族的appid"
appKey "魅族的appkey"
}
//小米推送配置信息
XIAOMI{
appId "小米的appid"
appKey "小米的appkey"
}
//FCM推送通道配置
FCM{
//设置默认推送通知显示图标
iconRes "@mipmap/ic_launcher"
}
//OPPO推送配置信息
OPPO{
appKey "OPPO的appKey"
appSecret "OPPO的appSecret"
}
}
}
注:华为推送服务需要检验签名的一致性,华为推送官网需要填写指纹证书的SHA256,在终端采用keytool -list -v -keystore keyStoreFileName 获取偶对应的指纹证书,keyStoreFileName为证书名字加后缀
注:FCM通道服务需在FCM官网控制台,下载google-services.json文件,复制到应用module中:
apply plugin: 'com.android.application'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
android {
...
}
//在build.gradle文件的最后添加
apply plugin: 'com.google.gms.google-services'
3、添加防止二次混淆的代码(**重要**)
-keep class com.huawei.**{*;}
-keep class com.meizu.**{*;}
-keep class com.xiaomi.**{*;}
-keep class android.os.SystemProperties
-keep class com.coloros.** {*;}
-keep class com.google.** {*;}
-keep class org.apache.thrift.**{*;}
-dontwarn com.huawei.**
-dontwarn com.meizu.**
-dontwarn com.xiaomi.**
-dontwarn android.os.SystemProperties
-dontwarn com.coloros.**
-dontwarn com.google.**
-dontwarn org.apache.thrift.**
集成完毕运行后可以在对应设备上可以接收到三个推送通道下发的推送消息,如需查询华为、魅族、OPPO和小米三个推送平台开发账号申请流程 以及离线集成方式,可至Mob官网(http://www.mob.com/product/mobpush)查看。