前言:
推送是App开发中必不可少的功能,之前接入过个推、友盟、极光等,效果只能说一般,由于Android系统的碎片化和国内各家手机厂商定制系统不一样,导致推送有时候不是很及时,有时候第三方的sdk说要我们接入付费版的,说是可以达到多少送达率和存活率,但是他们也不能给出一个准确数字,回答得很模糊,小公司在初期不会太多钱在推送开发上面,这时候就需要我们自己去想办法了,最近也尝试了各大平台的第三方sdk,接入了腾讯信鸽、融云、网易云信等等.
1.平台分析:
融云集成比较麻烦,但是支持华为、小米、魅族、vivo、oppo和google等各大手机平台,算是目前最全面的了.
2.融云开放平台地址:
3.信鸽支持华为、小米、魅族、google的FCM,
开放平台地址:https://xg.qq.com/,支持的手机平台截图如下:
4.网易云信开放平台地址:
5.支持的手机平台截图如下:
6.今天是接入的腾讯信鸽的sdk,其他暂时不讲,后面会分别写接入说明文章,在腾讯信鸽平台注册开发者账号后,创建应用,然后下载sdk.
7.通过AndroidStudio自动集成,studio集成步骤如下:
7.1:导入依赖,在app build.gradle
文件下配置 以下内容:
android { ...... defaultConfig { //信鸽官网上注册的包名.注意application ID 和当前的应用包名以及 信鸽官网上注册应用的包名必须一致。 applicationId "你的包名" ...... ndk { //根据需要 自行选择添加的对应cpu类型的.so库。 abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a' // 还可以添加 'x86', 'x86_64', 'mips', 'mips64' } manifestPlaceholders = [ XG_ACCESS_ID:"注册应用的accessid", XG_ACCESS_KEY : "注册应用的accesskey", ] ...... } ...... } dependencies { ...... //信鸽3.2.5之前版本无需单独依赖'com.tencent.jg:jg:1.1',其它三个依赖必须有。 //信鸽3.2.6以上的版本 //完整的信鸽依赖四个都必须有,如果发生依赖冲突请根据对应的依赖版本号选择高版本的依赖。(使用jcenter自动接入请确认libs中没有信鸽的相关jar包) //信鸽jar compile 'com.tencent.xinge:xinge:3.2.7-Release' //jg包 compile'com.tencent.jg:jg:1.1' //wup包 compile 'com.tencent.wup:wup:1.0.0.E-Release' //mid包 compile 'com.tencent.mid:mid:4.0.6-release' }
7.2:以下是我项目集成的截图:
8.手动配置来进行集成
8.1:注册并下载SDK
-
如需监听消息请参考XGBaseReceiver接口或者是 demo 的 MessageReceiver 类。自行继承XGBaseReceiver并且在配置文件中配置如下内容:
前往信鸽管理台 xg.qq.com,使用QQ号码登陆,进入应用注册页,填写“应用名称”和“应用包名”(必须要跟APP一致),选择“操作系统”和“分类”,最后点击“创建应用”。
应用创建成功后,点击“应用配置”即可看到 APP 专属的 AccessId 和 AccessKey 等信息。
注册完成后,请下载最新版本的 Android SDK 到本地,并解压。
8.2:过程配置可以参考信鸽推送平台说明,截图如下:
9.注册以及部分日志输出。
9.1 根据手动接入或者自动接入,配置好信鸽过后,获取信鸽注册日志
AndroidStudio 建议采用jcenter自动接入,无需在配置文件中配置信鸽各个节点,全部由依赖导入)。
开启debug日志数据的方法如下:
XGPushConfig.enableDebug(this,true);
9.2 token注册
XGPushManager.registerPush(this, new XGIOperateCallback() { @Override public void onSuccess(Object data, int flag) { //token在设备卸载重装的时候有可能会变 Log.d("TPush", "注册成功,设备token为:" + data); } @Override public void onFail(Object data, int errCode, String msg) { Log.d("TPush", "注册失败,错误码:" + errCode + ",错误信息:" + msg); } })
10.我的项目Manifest配置如下:
11.Application代码:
12.输出日志如下:
![点击并拖拽以移动](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
13.通过日志可以看到注册成功,token也获取到了,推送信息成功到达显示在手机上,后面会接入其他手机平台方法实例.
至此一个简单的信鸽推送集成demo和流程已经完成,小伙伴们如有更好地的方法和推送平台欢迎留言和给出解决方案,虽然说已经成立了统一推送联盟,但是到成熟还要一个阶段,后面会给出demo的下载地址.谢谢大家~~