公司项目原本使用的是极光推送,但是发现推送的真实到达率很不理想,很多时候都没有收到消息通知。所以就想到根据不同的手机厂商,配置各自的推送服务,来提高真实到达率。
(极光推送可以实现互拉,重新激活来保证推送服务,例如A应用和B应用都接入了极光推送服务,B应用被完全杀掉了,但只要用户启动过A应用,极光服务就起来了,同时也能为B应用服务。但如果手机里安装的APP,接入极光的很少或者没有,那只要你的APP被杀掉,就代表无法收到消息通知了)
这里是各自厂商的官网,最好的接入文档就是官方的
小米:https://dev.mi.com/
华为:https://developer.huawei.com/consumer/cn/appgallery
OPPO:https://open.oppomobile.com/user/admin/qualification
vivo:https://id.vivo.com.cn
方案思路是这样:
第一步:判断手机类型
/**
* 是否小米手机
* @return
*/
private static boolean isMIUI() {
String manufacturer = Build.MANUFACTURER;
if ("xiaomi".equalsIgnoreCase(manufacturer)) {
return true;
}
return false;
}
/**
* 是否华为手机
* @return
*/
private static boolean isEMUI() {
String manufacturer = Build.MANUFACTURER;
if ("HUAWEI".equalsIgnoreCase(manufacturer)) {
return true;
}
return false;
}
/**
* 是否OPPO手机
* @return
*/
private static boolean isOPPO() {
String manufacturer = Build.MANUFACTURER;
if ("OPPO".equalsIgnoreCase(manufacturer)) {
return true;
}
return false;
}
/**
* 是否vivo手机
* @return
*/
private static boolean isVIVO() {
String manufacturer = Build.MANUFACTURER;
if ("vivo".equalsIgnoreCase(manufacturer)) {
return true;
}
return false;
}
public static void initPushByPhone(Application context) {
if (isMIUI()) {
//由于极光配置就会启动,所以当匹配到对应手机时,需要停止极光,不然就有可能受到相同的推送,体验不好
JPushInterface.stopPush(context);
initMiPush(context);
} else if (isEMUI()) {
JPushInterface.stopPush(context);
initHuaWeiPush(context);
} else if (isOPPO()) {
JPushInterface.stopPush(context);
initOppoPush(context);
} else if (isVIVO()) {
JPushInterface.stopPush(context);
initVivoPush(context);
} else {
/**
* 其他手机类型,注册极光推送
*/
if (JPushInterface.isPushStopped(context)) {
JPushInterface.resumePush(context);
}
JPushInterface.setDebugMode(TnaotApplication.Companion.instance().isRelease()); // 设置开启日志,发布时请关闭日志
JPushInterface.init(context);// 初始化 JPush
JPushInterface.setLatestNotificationNumber(context, 1); //只保存最近1条通知
}
}
到这里为止,基本的集成思路就是这样,具体的每一种手机集成,另开文章详细说明,不然篇幅过长。
集成小米推送:https://www.jianshu.com/p/fb9e4f9dad99
集成华为推送:https://www.jianshu.com/p/3c79ae4a553a
集成OPPO推送:https://www.jianshu.com/p/bafb6f948a89
集成vivo推送:https://www.jianshu.com/p/db3d190f2dfa