其他推送方式还有:C2DM、轮询、SMS、MQTT协议、XMPP协议等等,相对于这些推送方式,第三方推送方式的特点分别是:
请记住一个潜规则:操作系统是不会杀死属于自己品牌的推送服务。
- 手机厂商的推送服务在自家的手机上属于系统级别的服务,这意味着系统不会杀死自家的推送服务
- 比如说,Android原生系统是不会杀死C2DM消息推送服务,MIUI系统是不会杀死小米的推送服务。
请记住一个规则:推送系统会共享一条推送渠道
- 这意味着假设你接入了友盟推送,而恰好今日头条也接入了友盟。
- 有一天你的App被杀死了,但这时用户启动了今日头条,那么推送系统也就会通过共享的推送通道顺便把你推送消息送达到手机上,然后还可能把你的进程也唤醒(被“保活”了)。
所以说,关于如何选择第三方平台类的推送,推送平台的规模效应就很重要了。
那如何得知他们的规模和市场份额呢?
所以为了推送的高到达率,很多应用都集成了不同厂商的推送服务。但是这样的开发时间太大了。友盟就基于这个需求,推出了最新的推送服务友盟聚合推送,其中同步集合和小米、华为、魅族的推送,下面我们就来讲一下,怎么集成友盟聚合推送。
一、准备工作
1、进入友盟官方网站点击打开友盟官方链接,在友盟平台注册一个账号
我这里讲解的是安卓的集成,下载的是安卓的SDK
5、登录了用户后打开点击打开链接进入立即使用,创建一个应用,得到应用对应的信息
二、AndroidStudio完整集成友盟聚合推送
1、新建一个Android工程项目
2、复制common文件夹下的umeng-common-1.5.1.jar和thirdparties文件夹下的utdid4all-1.1.5.3_proguard.jar这两个jar包到项目app的libs文件夹下。
4、点击项目源路径下的settiongs.gradle把分支添加到项目中,include ':app',':push',打开app路径下的build.gradle,在文件的dependencies{implementation project(':push')}添加分支的依赖。
5、新建一个类MyApplication继承Application,同时在AndroidManifest.xml的application下添加代码:android:name=".MyApplication"配置使用我们自定义的Application。并且在application节点下加入如下代码:
并且在AndroidManifest.xml清单文件下添加需要用到的权限如下:
6、在MyApplication的onCreate()方法下初始化和注册友盟聚合推送
UMConfigure.init(this,UMConfigure.DEVICE_TYPE_PHONE, "你在友盟申请的UMENG_MESSAGE_SECRET");
PushAgent mPushAgent = PushAgent.getInstance(this);
mPushAgent.setResourcePackageName("你应用的applicationId");
mPushAgent.register(new IUmengRegisterCallback() {
@Override
public void onSuccess(String s) {
Log.e("获取token成功:",s);
}
@Override
public void onFailure(String s, String s1) {
Log.e("获取token失败:",s+"且s1="+s1);
}
});
7、使用一个可以联网的手机或模拟器运行项目。查看log打印台的消息,看是否获取token成功,如果是获取token失败:-11 accs bindapp error! 那么检测填写的包名是否和你在友盟平台创建的应用包名一致,如果一致,那么查看填写的appKey和message_sectet是否正确。
8、如果是获取token成功:AnEsKx52L4rULIYSjLkF7qU55_rv2qPTZsgbifcrxvcq 后面的这串字符是当前接入的设备号。把这段设备号复制下来。在U-PUSH的管理平台里添加一个设备用于测试
添加测试设备。设备号就是刚刚复制的那一串。
9、编辑推送信息进行推送功能测试。正常到这里就集成完成了。