android进阶4step3:Android常用框架——友盟推送简单使用(官翻)

友盟官方:快速集成文档

还有之前写的极光推送的简单使用:Android常用框架——极光推送的简单使用

使用步骤:

第一步:.登录注册友盟的账号,并绑定邮箱   官网

第二步:以下拷贝自友盟官方文档

前言

【友盟+】消息推送SDK 5.0.2 集成文档。

此文档适用于Android Studio在线集成,如您需要离线下载SDK方式集成,请参考手动集成文档-Android Studio

开发环境

IDE:Android Studio

本文档提供的UmengPushDemo工程是Android Studio基于Maven的快速集成方案。该方案配置简单,方便后续维护和更新。因此强烈推荐开发者根据本文档使用Android Studio进行集成工作。

示例工程下载地址:

https://download.umeng.com/online/2018/12/20181219173244199.zip

消息推送SDK快速集成

1-1

1、Appkey申请

请在U-Push官网为您的应用申请Appkey(详细操作路径:U-Push官网->应用->新建应用->创建新应用)1-2-1

注:已经使用了【友盟+】统计的用户,请从U-Push官网从已有应用中添加关联。

1-4

获取应用对应的AppkeyUmeng Message Secret,这两个值请务必留意,在后续SDK初始化中需要用到。1-5

2、接入Push SDK

在您的Android Studio工程的App模块的build.gradle配置脚本中添加maven远程依赖,导入最新版本PushSDK:

请查看您项目中com.android.tools.build:gradle配置,如果版本号<3.0.0,请使用如下配置脚本添加远程依赖:

//PushSDK必须依赖基础组件库,所以需要加入对应依赖
compile 'com.umeng.umsdk:common:1.5.4'
//PushSDK必须依赖utdid库,所以需要加入对应依赖
compile 'com.umeng.umsdk:utdid:1.1.5.3'
//PushSDK
compile 'com.umeng.umsdk:push:5.0.2'

请查看您项目中com.android.tools.build:gradle配置,如果版本号>=3.0.0,请使用如下配置脚本添加远程依赖:

//PushSDK必须依赖基础组件库,所以需要加入对应依赖
implementation 'com.umeng.umsdk:common:1.5.4'
//PushSDK必须依赖utdid库,所以需要加入对应依赖
implementation 'com.umeng.umsdk:utdid:1.1.5.3'
//PushSDK
implementation 'com.umeng.umsdk:push:5.0.2'

在工程build.gradle配置脚本中buildscript和allprojects段中添加【友盟+】sdk 新maven仓库地址

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/umsdk/release' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url 'https://dl.bintray.com/umsdk/release' }
    }
}

3、基础接口引入

1、务必在工程的自定义Application类的 onCreate() 方法中做SDK代码初始化工作。

// 在此处调用基础组件包提供的初始化函数 相应信息可在应用管理 -> 应用信息 中找到 http://message.umeng.com/list/apps
// 参数一:当前上下文context;
// 参数二:应用申请的Appkey(需替换);
// 参数三:渠道名称;
// 参数四:设备类型,必须参数,传参数为UMConfigure.DEVICE_TYPE_PHONE则表示手机;传参数为UMConfigure.DEVICE_TYPE_BOX则表示盒子;默认为手机;
// 参数五:Push推送业务的secret 填充Umeng Message Secret对应信息(需替换)
UMConfigure.init(this, "替换为Appkey,服务后台位置:应用管理 -> 应用信息 -> Appkey", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, "替换为秘钥信息,服务后台位置:应用管理 -> 应用信息 -> Umeng Message Secret");

1-7

2、Push注册在UMConfigure.init方法之后注册,注册成功后可获取deviceToken,进行消息下发。调用代码如下所示: 


UMConfigure.init(this, "替换为Appkey,服务后台位置:应用管理 -> 应用信息 -> Appkey", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, "替换为秘钥信息,服务后台位置:应用管理 -> 应用信息 -> Umeng Message Secret");
//获取消息推送代理示例
PushAgent mPushAgent = PushAgent.getInstance(this);
//注册推送服务,每次调用register方法都会回调该接口
mPushAgent.register(new IUmengRegisterCallback() {

  @Override
  public void onSuccess(String deviceToken) {
    //注册成功会返回deviceToken deviceToken是推送消息的唯一标志
    Log.i(TAG,"注册成功:deviceToken:-------->  " + deviceToken);
  }

  @Override
  public void onFailure(String s, String s1) {
    Log.e(TAG,"注册失败:-------->  " + "s:" + s + ",s1:" + s1);
  }
});
  • deviceToken是【友盟+】消息推送生成的用于标识设备的id,长度为44位,不能定制和修改。同一台设备上不同应用对应的deviceToken不一样。获取deviceToken的值后,可进行消息推送测试!

4、应用数据统计接口

在所有的Activity 的onCreate 方法或在应用的BaseActivity的onCreate方法中添加:

PushAgent.getInstance(context).onAppStart();

注:该方法是【友盟+】Push后台进行日活统计及多维度推送的必调用方法,请务必调用!

5、消息推送

恭喜您已经顺利获取deviceToken!我们马上可以向这台设备推送消息了~

可以直接发送到安装该app的真机或者模拟器:

首先运行app(app被杀死时收不到,只有打开才能收到)

 消息列表—>消息通知—>新建通知—填写内容—>设置(参数)—>点击发送

效果: 

代码:

自定义的MyApplication类

public class MyApplication extends Application {

    private static final String TAG = "MyApplication";

    @Override
    public void onCreate() {
        super.onCreate();

        // 在此处调用基础组件包提供的初始化函数 相应信息可在应用管理 -> 应用信息 中找到 http://message.umeng.com/list/apps
        // 参数一:当前上下文context;
        // 参数二:应用申请的Appkey(需替换);
        // 参数三:渠道名称;
        // 参数四:设备类型,必须参数,传参数为UMConfigure.DEVICE_TYPE_PHONE则表示手机;传参数为UMConfigure.DEVICE_TYPE_BOX则表示盒子;默认为手机;
        // 参数五:Push推送业务的secret 填充Umeng Message Secret对应信息(需替换)
        UMConfigure.init(this, "5c1c9a0bb465f548e4000394", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, "c9674cbe2cc4beda9cd4dc4256c7c892");

        //获取消息推送代理示例
        PushAgent mPushAgent = PushAgent.getInstance(this);
        //注册推送服务,每次调用register方法都会回调该接口
        mPushAgent.register(new IUmengRegisterCallback() {

            @Override
            public void onSuccess(String deviceToken) {
                //注册成功会返回deviceToken deviceToken是推送消息的唯一标志
                Log.i(TAG, "注册成功:deviceToken:-------->  " + deviceToken);
            }

            @Override
            public void onFailure(String s, String s1) {
                Log.e(TAG, "注册失败:-------->  " + "s:" + s + ",s1:" + s1);
            }
        });

        //拿到通知的消息
        UmengMessageHandler messageHandler = new UmengMessageHandler() {
            @Override
            public Notification getNotification(Context context, UMessage uMessage) {
                //通知的标题
                String title = uMessage.title;
               //通知的内容
                String ticker = uMessage.ticker;
                Log.e(TAG, "getNotification:-------->  " + "title:" + title + ",ticker:" + ticker);

                return super.getNotification(context, uMessage);
            }
        };
        mPushAgent.setMessageHandler(messageHandler);

        //通知到达点击的行为
        UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler() {
            //直接打开app
            @Override
            public void launchApp(Context context, UMessage msg) {
                super.launchApp(context, msg);
                Log.e(TAG, "launchApp:-------->  " + "msg:" + msg);
            }
            
            //打开指定的Url
            @Override
            public void openUrl(Context context, UMessage msg) {
                super.openUrl(context, msg);
                Log.e(TAG, "openUrl:-------->  " + "msg:" + msg);
            }
            //打开指定的Activity
            @Override
            public void openActivity(Context context, UMessage msg) {
                super.openActivity(context, msg);
                Log.e(TAG, "openActivity:-------->  " + "msg:" + msg);
            }
            //打开自定义的行为
            @Override
            public void dealWithCustomAction(Context context, UMessage msg) {
                Log.e(TAG, "dealWithCustomAction:-------->  " + "msg:" + msg.custom);
                Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
                //如果是点击通知栏的动作
                //点击后跳转
                Intent intent1 = new Intent(context, MainActivity.class);
                intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(intent1);

            }
        };
        mPushAgent.setNotificationClickHandler(notificationClickHandler);

    }
}

 注意要在配置文件中,把这个MyApplication进行静态注册

   <application
       .... 
       //添加这一句代码
       android:name=".MyApplication"
       .....
      >
        <activity android:name=".MainActivity">
       ....
        </activity>
    </application>

也可以测试:

添加测试设备:

在【友盟+】消息推送服务Push后台的“测试模式”中填写获取到的deviceToken,将该设备添加为测试设备:1-15-11-15-2

在测试消息中新建消息,详细过程如下所示,详细过程如下所示:1-14

6、接入完成

此时在您的测试手机上可以看到您刚才的推送消息!

至此您已完整集成了【友盟+】消息推送SDK,更多高级功能请见Push SDK高级功能

猜你喜欢

转载自blog.csdn.net/qq_17846019/article/details/85161639
今日推荐