集成友盟推送

基于   友盟基础库common:2.0.2'     友盟push:5.0.2'       android studio 2.2.3   gradle 2.14.1

介绍下选择友盟的原因,一个字,多渠道打包。友盟支持多包名,什么意思呢?就是只创建一个应用,然后就可以随便在这个应用上增加包名(200~300),不用增加一个包名又要创建一个应用,像我们这种有多少客户就有多少包名的来说,就决定是他了。极光跟信鸽都不支持多包名。

然后说下功能,目测了下,有启动广告、自定义通知、全屏消息、对话框消息,等等,简单测试了下,挺有意思,功能够用。但是这些我暂时都用不到,以后慢慢再增加吧。主要用他的另一个功能,就是其它有集成友盟的可以相互拉起进程,呃,好像路走偏了。。。。。

接下来说下集成,我是用自动集成的方式,没办法,懒,手动集成要配置的东西有点多,而且还要依赖一个叫push的library,项目里多一个不相干的module,处男座能忍,处女座也忍不了啊。

最后说下具体集成,用屁股想也知道分两步,依赖----配置,其中配置包括在友盟控制台创建应用,生成key相关的东西,还有就是在项目里配置生成的key。然后不用屁股想也知道配置完成后就是初始化了。一步步来。

控制台创建应用不说了,申请过微信分享或是百度地图key的都应该很熟悉,跟着做就可以了。

依赖

首先在project的build.gradle里添加仓库,注意是在相应节点添加就可以了,不要整个复制把原来项目里的覆盖了。

buildscript {
    repositories {
        maven { url 'https://dl.bintray.com/umsdk/release' }
    }
}
allprojects {
    repositories {
        maven { url 'https://dl.bintray.com/umsdk/release' }
    }
}

然后在app的build.gradle的dependencies节点添加依赖,如果你的gradle版本>=3.0.0,把下面的compile换成implementation。

//基础组件库(必需)
compile 'com.umeng.umsdk:common:2.0.2'
//PushSDK(必需)
compile 'com.umeng.umsdk:push:5.0.2'
compile 'com.umeng.umsdk:utdid:1.1.5.3'

关于第三个依赖'com.umeng.umsdk:utdid:1.1.5.3',如果项目里集成了支付宝支付,那这个依赖就不用了。如果没有集成支付宝,那这个依赖是必需的。依赖都完成后同步一下。

初始化

在项目Application的oncreate()里初始化,初始化也很简单。

UMConfigure.init(this, Appkey, 渠道名称,UMConfigure.DEVICE_TYPE_PHONE, Umeng Message Secret);
        PushAgent mPushAgent = PushAgent.getInstance(this);
        mPushAgent.setResourcePackageName(资源包名);
        mPushAgent.register(new IUmengRegisterCallback() {
            @Override
            public void onSuccess(String token) {
                Log.i("lxx", "onSuccess: " + token);
            }

            @Override
            public void onFailure(String s, String s1) {
            }
        });

输入参数解释

Appkey 和Umeng Message Secret在创建应用的时候会生成,直接复制相应字段填入就好了。

渠道名称:我是用的包名全称,解释一下,有一种场景,比如你打包了华为跟小米两个渠道的包,但是只创建了一个应用,利用多包名,因为控制台发消息是以应用为单位发的,这种情况如果你想单独给华为或是单独给小米渠道下载的app发消息,就可以用到这个渠道名称了。先看下控制台发消息时的筛选,在这里填入初始化时输入参数里相应的渠道名称就可以了。

调用完初始化后,还有这么一句

mPushAgent.setResourcePackageName(资源包名);

对于多包名来说,这句话很重要,要不然会收不到推送。这句是用来设置资源目录的。默认情况下applicationId和AndroidManifest里的package是一样的,但是多渠道打包的时候,会修改applicationId的值,这个时候applicationId跟package就不一样了。所以要设置一下。 

接下来是注册,在回调里会返回一个token,这个token可以用来标识一台具体的设备,每个设备的都不一样。所以可以利用这个值给某台设备发推送。

好了,到此,最简单的推送就配置完了。

猜你喜欢

转载自blog.csdn.net/xiaoxiong1989821/article/details/89339612