跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

快速集成文档

快速集成文档

前言

【友盟+】智能认证SDK集成文档,此文档适用于Android Studio离线集成,示例工程下载地址:https://umplus-sdk-download.oss-cn-shanghai.aliyuncs.com/Android/umeng-uverify/umeng-uverify-android.zip

U-Verify SDK 快速集成文档:

接入流程图

添加认证方案:

在智能认证->认证管理->管理配置方案中选择“添加认证方案”【友盟+智能认证】
添加认证方案
获取Appkey和方案唯一秘钥(这两个值请务必留意,在后续SDK初始化中需要用到。)
appkey及秘钥

接入U-Verify SDK

引入依赖包
  1. umeng-uverify-1.*.aar

  2. umeng-common-2.*.jar

  3. fastjson-1.2.60.jar

添加UI依赖包:implementation 'com.android.support:appcompat-v7:27.1.1'(已有相关依赖包则无需重复引入)

基础接口引入

1、务必在工程的自定义Application类的 onCreate() 方法中做SDK代码初始化工作。
// 参数一:当前上下文context;
// 参数二:应用申请的Appkey(需替换);
// 参数三:渠道名称;
// 参数四:设备类型,必须参数,传参数为UMConfigure.DEVICE_TYPE_PHONE则表示手机;传参数为UMConfigure.DEVICE_TYPE_BOX则表示盒子;默认为手机;
// 参数五:Push推送业务的secret,可不填写
UMConfigure.init(this,"替换为Appkey","Umeng",UMConfigure.DEVICE_TYPE_PHONE,"");
2、获取UMVerifyHelper实例,设置方案唯一秘钥信息
/**
 * 获取UMVerifyHelper实例,设置秘钥信息
 */
 umVerifyHelper = UMVerifyHelper.getInstance(this, mTokenListener);
 umVerifyHelper.setAuthSDKInfo("设置方案唯一秘钥信息");
 umVerifyHelper.setAuthListener(mTokenListener);
3、检测智能认证环境
boolean checkRet = umVerifyHelper.checkEnvAvailable();
        umVerifyHelper.setAuthListener(mTokenListener);
if(!checkRet){
    Log.d("test","当前网络不支持,请检测蜂窝网络后重试");
}
4、拉取一键登录授权页页面
// 参数一:当前上下文context;如果需要添加效果,则需要传入Activity句柄
// 参数二:超时时间ms;
umVerifyHelper.getLoginToken(mContext,5000);
5、预取号接口调用

预取号接口是否需要调用跟应用拉起一键登录页时机交互有关,如果不是立即拉起一键登录页,则可以调用预取号接口,否则无需调用。

/**
     *预取号码信息,建议在 APP 登录页初始化时调用,提高后续授权页的打开速度。
     *不要在 App 启动初始化时调用,预取号接口有有效期,避免接口调用资源浪费
     *@param overdueTime 超时时间 单位ms
     *@param listener 预取结果回调函数
     */
    umVerifyHelper.accelerateLoginPage(3000000, new UMPreLoginResultListener(){
        @Override
        public void onTokenSuccess(finalString vendor){
            ThreeMinsDemoActivity.this.runOnUiThread(newRunnable(){
                @Override
                public void run(){
                    info.setText("预取号成功!");
                }
            });
        }

        @Override
        public void onTokenFailed(final String vendor, final String ret){
            ThreeMinsDemoActivity.this.runOnUiThread(newRunnable(){
                @Override
                public void run(){
                    info.setText("预取号失败!"+ ret);
                }
            });
        }
    });

认证Token验证

1、确认是否可以拉起一键登录授权页
登录授权页
2、点击一键登录,从UMTokenResultListener中查看是否可以成功获取到token信息
/**
     * UMTokenResultListener 获取token和拉起授权页的监听回调
     */
private UMTokenResultListener mTokenListener =newUMTokenResultListener() {
    @Override
    public void onTokenSuccess(finalString ret) {
        ThreeMinsDemoActivity.this.runOnUiThread(newRunnable(){
            @Override
            public void run() {
                UMTokenRet tokenRet =null;
                try {
                    tokenRet = JSON.parseObject(ret, UMTokenRet.class);
                } catch(Exception e) {
                    e.printStackTrace();
                }
                if(tokenRet != null && !("600001").equals(tokenRet.getCode())){
                    token = tokenRet.getToken();
                    umVerifyHelper.quitLoginPage();
                    info.setText("获取认证token成功!");
                }
            }
        });
    }

    @Override
    public void onTokenFailed(finalString ret){
        ThreeMinsDemoActivity.this.runOnUiThread(newRunnable(){
            @Override
            public void run(){
                    umVerifyHelper.hideLoginLoading();
                    umVerifyHelper.quitLoginPage();
                    info.setText("获取认证token失败!");
            }
        });
    }
};

SDK端初始接入完成

至此,客户端已可以成功获取token,剩余步骤需要与服务端联调处理用户登录逻辑

其它

关于预取号接口的调用

预取号接口是否调用,需要取决于APP拉起一键登录页面的交互,如果是一进入APP就立即拉起一键登录页面,则无需调用预取号接口