文档

Android客户端接入

更新时间:

本文为您介绍Android客户端融合认证的集成方法及接口的功能示例。

接入步骤

下载SDK

登录号码认证产品控制台,在概览页面的右侧API&SDK区域,单击立即下载,进入API&SDK页面,根据页面提示下载并解压对应SDK。

创建认证方案

您导入项目或调用API接口时,会用到方案Code等参数信息,请先在号码认证产品控制台创建认证方案,获取方案Code等参数信息。

导入项目

  1. 控制minSdkVersion。

    说明

    融合认证SDK最低依赖版本为21,因此创建新项目minSdkVersion不能低于21。

    lQLPJwN1siDmwSzNAtfNBHewyVLqseO2qncFAEtxWlZzAA_1143_727.png

  2. 导入aar产物并添加依赖。

    在使用融合认证功能的module中引入相关SDK,即将相关aar导入module libs文件夹。

    如您的项目需要使用手机号风险分、端风险设置功能,请将友盟相关组件一起引入。39

    如您的项目不需要使用手机号风险分、端风险设置功能,请引入融合认证aar即可。50

    modulebuild.gradle文件中找到dependencies,添加如下引用:

    implementation fileTree(dir: "libs", include: ["*.aar"])
    implementation 'androidx.appcompat:appcompat:1.3.1'

    lQLPJwoji7yUM4jNAwvNBzKw4vnJ9sJt2EEE7oFrP3qcAA_1842_779.png

  3. 创建签名文件。

    参考studio创建签名文件创建签名文件,此签名文件在创建方案号时使用,签名文件放置在module下,文件名及文件路径无设置要求。

    以Demo为例,将签名文件放置在app/sig-adaptation/debug/文件夹下,在module的build.gradle文件中指向该签名。31

  4. 查看签名。

    使用Studio右侧面板,选择Gradle > 项目名称 > 签名文件module > Tasks > android > signingReport,查看签名

    32

    说明

    包签名获取方式如下:

    • 方式一:上图的下方输出的MD5值移除冒号,将大写字母转换为小写字母即可生成包签名

    • 方式二:请通过手机终端下载并安装Android App签名获取工具,获取Android App的包签名信息。

添加配置

  1. 添加权限。

    AndroidMainfest.xml清单文件中添加必要权限。

        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
  2. 添加Activity声明。

    AndroidMainfest.xml清单文件中添加Activity声明。

    //号码认证界面
    <activity android:name="com.alicom.fusion.auth.numberauth.FusionNumberAuthActivity"
        android:theme="@style/NumberAuthTheme"
        android:launchMode="singleTask"
        android:screenOrientation="portrait">
        <intent-filter>
    				//action值固定不能修改
            <action android:name="fusion_action_auth"/>
            <category android:name="fusion_category_auth"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>
    //短信界面
    <activity
        android:name="com.alicom.fusion.auth.smsauth.FusionSmsActivity"
        android:screenOrientation="portrait">
        <intent-filter>
    				//action值固定不能修改
            <action android:name="fusion_action_sms"/>
            <category android:name="fusion_category_sms"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>
    //上行短信界面
    <activity
        android:name="com.alicom.fusion.auth.upsms.AlicomFusionUpSmsActivity"
        android:screenOrientation="portrait">
        <intent-filter>
    				//action值固定不能修改
            <action android:name="fusion_action_ups"/>
            <category android:name="fusion_category_ups"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>
    //号码认证授权页界面
    <activity
    	android:name="com.mobile.auth.gatewayauth.LoginAuthActivity"
    	android:configChanges="orientation|keyboardHidden|screenSize"
    	android:exported="false"
    	android:launchMode="singleTop"
    	android:screenOrientation="behind"
    	android:theme="@style/authsdk_activity_dialog"/>
    //号码认证二次弹窗授权界面
    <activity
    	android:name="com.mobile.auth.gatewayauth.PrivacyDialogActivity"
    	android:configChanges="orientation|keyboardHidden|screenSize"
    	android:exported="false"
    	android:launchMode="singleTop"
    	android:screenOrientation="behind"
    	android:theme="@style/authsdk_activity_dialog"/>
    //号码认证协议及登录注册场景协议界面用户可自定义
    <activity
    	android:name="com.alicom.fusion.demo.CustomWebViewActivity"
    	android:configChanges="orientation|keyboardHidden|screenSize|uiMode|fontScale"
    	android:screenOrientation="sensorPortrait">
    	<intent-filter>
    		//action为固定值不能修改
    		<action android:name="com.fusion.auth"/>
    		<category android:name="android.intent.category.DEFAULT"/>
    	</intent-filter>
    </activity>
  3. 混淆配置。

    如接入方有混淆需求,请在混淆文件中加入如下混淆规则:

    -keep class com.alicom.fusion.auth.**{*;}

鉴权

SDK在启动时需要接入方传入鉴权Token,用于合法性校验。

  • Token鉴权成功,通过onSDKTokenAuthSuccess():回调。

  • Token鉴权失败,通过onSDKTokenAuthFailure(AlicomFusionAuthToken token, AlicomFusionEvent alicomFusionEvent)回调。

更新

SDK在运行时若Token过期,请通过onSDKTokenUpdate()更新Token。

使用场景

/* 默认登录注册场景 */
 public static final String ALICOMFUSIONAUTHTEMPLATED_10001 = "100001";
 /* 默认更换手机号场景 */
 public static final String ALICOMFUSIONAUTHTEMPLATED_10002 = "100002";
 /* 默认重置密码场景 */
 public static final String ALICOMFUSIONAUTHTEMPLATED_10003 = "100003";
 /* 默认绑定新手机号场景 */
 public static final String ALICOMFUSIONAUTHTEMPLATED_10004 = "100004";
 /* 默认验证绑定手机号场景 */
 public static final String ALICOMFUSIONAUTHTEMPLATED_10005 = "100005";

类别

说明

开始场景

调用startSceneWithTemplateId(Context mContext,String templateId)startSceneWithTemplateId(Context mContext,String templateId,AlicomFusionAuthUICallBack callback)

说明

调用该接口的前提是没有正在执行的场景。

  • mContext:上下文。

  • callback:为可选参数,用于自定义UI时使用,如果默认使用内置UI,该参数可不传。

  • templateId:场景唯一标识与控制台场景ID唯一对应,用于决策启动哪个场景。

继续场景

调用continueSceneWithTemplateId(String templateId,boolean isSuccess)

说明

调用该接口的前提是有正在执行的场景。

  • templateId:场景唯一标识与控制台场景ID唯一对应,用于决策启动哪个场景。

  • isSuccess:当前场景验证是否成功,是否成功决定继续场景后的业务流程走向。

结束场景

调用stopSceneWithTemplateId(String templateId)

templateId:场景唯一标识与控制台场景ID唯一对应,用于决策启动哪个场景。

获取Token成功

SDK执行到一个节点后或通过onVerifySuccess(String token,String nodeName,AlicomFusionEvent event)回调,对接入方返回节点换号Token,接入方获取到该Token后通过接口换取号码。

中途获取Token成功

中途获取Token成功的回调,在AlicomFusionTemplateId_100002场景下验证当前手机号节点触发,回调onHalfWayVerifySuccess(String nodeName, String maskToken,AlicomFusionEvent event,HalfWayVerifyResult verifyResult)

在接入方验证完成当前手机号后,通过verifyResult告知SDK验证结果,SDK将根据该结构执行之后的流程。

获取Token失败

如果SDK在某个节点获取Token失败,通过onVerifyFailed(AlicomFusionEvent error,String nodeName)接入方在收到该回调后,可以用continueSceneWithTemplateId(String templateId,boolean isSuccess)接口选择下一节点的验证,或通过stopSceneWithTemplateId(String templateId)结束当前场景,采用其他方案进行验证。

场景结束

回调onTemplateFinish(AlicomFusionEvent event),结束场景内的所有节点。

接入方调用stopSceneWithTemplateId(String templateId)结束当前场景。

交互流程详解

完整的功能交互流程请参见融合认证的交互流程

SDK方法说明

创建融合认证实例

//创建无参数构造方法,主要进行⼀些SDK初始化⼯作
AlicomFusionBusiness mAlicomFusionBusiness=new AlicomFusionBusiness();

初始化传入鉴权Token

/**
 * 初始化,传入鉴权Token
 * @param mContext
 * @param sceneCode方案号
 * @param token鉴权Token
 */
 public void initWithToken(Context mContext, String sceneCode, AlicomFusionAuthToken token)
说明

Token需要从服务端获取。

  • Token鉴权成功,通过onSDKTokenAuthSuccess回调,场景操作必须在回调成功后进行;Token鉴权失败,通过onSDKTokenAuthFailure回调。

  • Token过期前五分钟,通过onSDKTokenUpdate回调获取新的Token,⽤户必须实现此回调获取新的Token。

使用示例

AlicomFusionAuthToken token=new AlicomFusionAuthToken();
token.setAuthToken(GlobalInfoManager.getInstance().getToken());
mAlicomFusionBusiness.initWithToken(GlobalInfoManager.getInstance().getContext(), Constant.SCHEME_CODE,token);

开始场景

使用默认UI

  • 该接口使用的是默认UI,接入方无法修改UI。

  • 需要Token鉴权成功后才可使用。

  • 没有其他场景正在执行方可调用,否则将报100003错误。

  • templateId请参考使用场景。

/**
 * 开始拉起场景,使用融合认证内置UI
 * @param mContext
 * @param templateId 场景唯⼀标识与控制台场景ID唯⼀对应
 */
 public void startSceneWithTemplateId(Context mContext,String templateId)

使用示例

mAlicomFusionBusiness.startSceneWithTemplateId(getActivity(), "100001");

使用自定义UI

  • 根据实际场景可以通过UI回调接口修改相关UI。

    • 一键登录onPhoneNumberVerifyUICustomView(String templateId,String nodeId, FusionNumberAuthModel authConfig)

    • 短信验证码onSMSCodeVerifyUICustomView(String templateId,String nodeId,boolean isAutoInput, AlicomFusionVerifyCodeView view)

    • 用户主动发短信onSMSSendVerifyUICustomView(String templateId,String nodeId, AlicomFusionUpSMSView view,String receivePhoneNumber,String verifyCode)

  • 需要Token鉴权后才可使用。

  • templateId请参考使用场景。

 /**
     *  开始拉起场景,使用APP自定义UI
     *  @param mContext
     *  @param templateId 场景唯一标识 与控制台场景ID唯一对应
     *  @param callback UI回调,自定义UI需通过该回调实现
     */
    public void startSceneWithTemplateId(Context mContext,String templateId,AlicomFusionAuthUICallBack callback)

使用示例

mAlicomFusionBusiness.startSceneWithTemplateId(getContext(), "100001", new AlicomFusionAuthUICallBack() {
    @Override
    public void onPhoneNumberVerifyUICustomView(String templateId,String nodeId, FusionNumberAuthModel authConfig) {

    }

    @Override
    public void onSMSCodeVerifyUICustomView(String templateId,String nodeId,boolean isAutoInput, AlicomFusionVerifyCodeView view) {

    }

    @Override
    public void onSMSSendVerifyUICustomView(String templateId,String nodeId, AlicomFusionUpSMSView view,String receivePhoneNumber,String verifyCode) {

    }
});

继续场景

  • 用于场景中断后恢复流程,如获取到号码校验Token后,假设服务端效验失败,可以通过该接口继续进行场景流程。

  • isSuccess的作用在于当前的认证是否成功,决定SDK的认证走向,如SDK透出Token后,进行取号操作失败,如需下一步鉴权,可通过该参数控制走向。

  • 需要在start后才能使用。

  • templateId请参考使用场景。

/**
 * 继续场景
 * @note 该接口用于场景中断后恢复流程,如获取到码号效验Token后,假设服务端效验失败,可以通过该接⼝继续进行场景流程
 * @param templateId 场景唯⼀标识与控制台场景ID唯⼀对应
 * @param isSuccess 当前场景验证是否成功,成功与否决定继续场景后的业务流程走向
 */
 public void continueSceneWithTemplateId(String templateId,boolean isSuccess)

使用示例

mAlicomFusionBusiness.continueSceneWithTemplateId("100001",true);

结束场景

  • 当需要结束场景时调用该接口,对应的场景将不再执行。

  • 需要在start后才能使用。

  • templateId请参考使用场景。

/**
 * 结束场景
 * @note 与start接口对应,结束后才可以start下⼀次场景,不可同时start多个场景
 * @param templateId 场景唯⼀标识与控制台场景ID唯⼀对应
 */
 public void stopSceneWithTemplateId(String templateId)

使用示例

mAlicomFusionBusiness.stopSceneWithTemplateId("100001");

一键登录界面添加自定义view

/**
 * 添加自定义布局
 *
 * @param xmlConfig
 */
 @AuthNumber
 public void addAuthRegisterXmlConfig(AuthRegisterXmlConfig xmlConfig)
 /**
 * 动态添加控件
 *
 * @param viewID view的ID
 * @param viewConfig view的动态配置
 */
 public void addAuthRegistViewConfig(String viewID, AuthRegisterViewConfig viewConfig)

使用示例

fusionNumberAuthModel.addAuthRegistViewConfig(""/**view ID**/,new AuthRegisterViewConfig.Builder()
        //添加自定义view
        .setView(null)
        //.setView(initNumberTextView())
        //RootViewId有三个参数
        //AuthRegisterViewConfig.RootViewId.ROOT_VIEW_ID_BODY 导航栏以下部分为body
        //AuthRegisterViewConfig.RootViewId.ROOT_VIEW_ID_TITLE_BAR 导航栏部分 设置导航栏部分记得setNavHidden和setNavReturnHidden显示后才可看到效果
        //AuthRegisterViewConfig.RootViewId.ROOT_VIEW_ID_NUMBER 手机号码部分
        .setRootViewId(AuthRegisterViewConfig.RootViewId.ROOT_VIEW_ID_BODY)
        .setCustomInterface(new CustomInterface() {
            @Override
            public void onClick(Context context) {
               //自定义view点击事件
            }
        }).build());
fusionNumberAuthModel.addAuthRegisterXmlConfig(new AuthRegisterXmlConfig.Builder()
        .setLayout(0/**xml布局layout ID**/,new AbstractPnsViewDelegate(){

    @Override
    public void onViewCreated(View view) {
        //添加自定义布局相关逻辑,如点击事件等
    }
});

二次弹窗界面添加自定义view

/**
 * 二次弹窗动态添加控件
 *
 * @param viewID view的ID
 * @param viewConfig view的动态配置
 */
public void  addPrivacyAuthRegistViewConfig(String viewID, AuthRegisterViewConfig viewConfig)

使用示例

fusionNumberAuthModel.addPrivacyAuthRegistViewConfig(""/**view ID**/, new AuthRegisterViewConfig.Builder()
        //添加自定义view
        .setView(null)
        //RootViewId有三个参数
        //AuthRegisterViewConfig.RootViewId.ROOT_VIEW_ID_BODY 协议文本区域
        //AuthRegisterViewConfig.RootViewId.ROOT_VIEW_ID_TITLE_BAR 顶部导航栏部分
        //AuthRegisterViewConfig.RootViewId.ROOT_VIEW_ID_NUMBER 按钮区域
        .setRootViewId(AuthRegisterViewConfig.RootViewId.ROOT_VIEW_ID_NUMBER)
        .setCustomInterface(new CustomInterface() {
            @Override
            public void onClick(Context context) {
                //自定义view点击事件
            }
        }).build());

添加二次弹窗自定义布局view

/**
 * 二次弹窗添加自定义布局
 *
 * @param xmlConfig
 */
public void addPrivacyRegisterXmlConfig(AuthRegisterXmlConfig xmlConfig)

使用示例

fusionNumberAuthModel.addPrivacyRegisterXmlConfig(new AuthRegisterXmlConfig.Builder()
        .setLayout(0/**xml布局layout ID**/,new AbstractPnsViewDelegate(){

    @Override
    public void onViewCreated(View view) {
        //添加自定义布局相关逻辑,如点击事件等
    }

其他接口说明

友盟组件依赖设置

用户如果需要使用友盟组件的端风险检测及手机号评分功能,需要配置aar后调用下面的方法决定友盟组件的初始化位置。

说明

如果用户只是简单地调用此方法而不引入aar则设置无效,因为此功能属于插件式依赖,不属于强制性依赖。

/**
 * 设置是否由SDK初始化友盟统计组件
 * @note SDK默认使用融合认证关联友盟组件,如果您当前App未集成友盟组件,根据SDK集成文档接入各个SDK后,无需再关心此接口设置
 * @note 如果您当前已经集成过友盟组件,则⽆需重复集成,使用此接口关闭内置链接,并确保使用本SDK前已经完成友盟组件初始化
 * @param isUseSupply true:使用SDK默认关联友盟组件;false:不使用SDK关联友盟组件,即使用App原有友盟组件,默认true
 * @param channel 渠道名称
 */
 public static void useSDKSupplyUMSDK(boolean isUseSupply,String channel
)

使用示例

AlicomFusionBusiness.useSDKSupplyUMSDK(true,"fusionauth");

销毁服务

销毁服务后需要重新创建对象。

/**
 * 销毁服务
 * @note 销毁服务后,SDK内部各个模块同步销毁,若想继续使用SDK,请重新初始化
 */
 public void destory()

使用示例

mAlicomFusionBusiness.destory();

主动更新Token

此方法为用户主动更新Token,Token相关鉴权及更新逻辑参考initWithToken中的Token逻辑。

/**
 * 主动更新鉴权Token
 * @param token 鉴权Token
 * @note 鉴权Token具有时效性,App可再Token即将过期时,主动向SDK更新Token
 * @note 非必要接口:SDK内部存在token的过期监控,过期前会通过AlicomFusionAuthCallVack回调通知App,App可不感知此项逻辑
 */
 public void updateToken(AlicomFusionAuthToken token)

使用示例

AlicomFusionAuthToken token=new AlicomFusionAuthToken();
token.setAuthToken(GlobalInfoManager.getInstance().getToken());
mAlicomFusionBusiness.updateToken(token);

获取版本号

/**
 * 获取SDK版本号
 * @return 版本号
 */
 public static String getSDKVersion()

使用示例

String version=AlicomFusionBusiness.getSDKVersion();

获取场景ID

/**
 * 获取当前正在运行中的场景ID
 * @return templateId 场景唯⼀标识与控制台场景ID唯⼀对应
 */
 public String getCurrentTemplateId()

使用示例

String currentTemplateId=mAlicomFusionBusiness.getCurrentTemplateId();

日志功能

/** AlicomFusionLog 日志会在debug状况下或者设置logEnable为true的情况下打印
 * 获取当前正在运行中的场景ID
 * @return templateId 场景唯⼀标识与控制台场景ID唯⼀对应
 */
public static void setLogEnable(boolean logEnable)

使用示例

AlicomFusionLog.setLogEnable(true);

⼀键登录自定义UI参数

public class FusionNumberAuthModel {
    //实现其他号码登录功能
    public void otherPhoneLogin()

    /**
     * 添加自定义View
     *
     * @param xmlConfig
     */
    @AuthNumber
    public void addAuthRegisterXmlConfig(AuthRegisterXmlConfig xmlConfig)
    /**
     * 动态添加控件
     *
     * @param viewID     view的ID
     * @param viewConfig view的动态配置
     */
    public void  addAuthRegistViewConfig(String viewID, AuthRegisterViewConfig viewConfig)
     //移除自定义添加控件
    public void removeAuthRegisterXmlConfig()

    //移除自定义View
    public void removeAuthRegisterViewConfig()

    /**
     * 设置UI控件点击事件回调
     *
     * @param uiClickListener 回调实现
     */
    public void setUiClickListener(AuthUIControlClickListener uiClickListener)
    /**
     * 设置切换组件swtich点击事件
    *
     * @param callBack 回调实现
     */
    public void  setSwitchLoginBack(AlicomFusionSwitchLogin callBack)
    //获取参数实体对象
    public Builder getBuilder()
    @AuthNumber
    public static class Builder {

        /**
         * 设置蒙层透明度
         *
         * @param dialogAlpha
         * @return
         */
        public FusionNumberAuthModel.Builder setDialogAlpha(float dialogAlpha) 

        /**
         * 设置顶部导航栏背景色
         *
         * @param navColor
         * @return
         */
        public FusionNumberAuthModel.Builder setNavColor(@ColorInt int navColor) 
        /**
         * 设置一键登录loading背景
         * @param loadingBackgroundPath
         * @return
         */
        public FusionNumberAuthModel.Builder setLoadingBackgroundPath(String loadingBackgroundPath)

        /**
         * 设置一键登录loading背景
         * @param loadingBackgroundDrawable
         * @return
         */
        public FusionNumberAuthModel.Builder setLoadingBackgroundDrawable(Drawable loadingBackgroundDrawable)

        /**
         * 设置顶部导航栏标题内容
         *
         * @param navText
         * @return
         */
        public FusionNumberAuthModel.Builder setNavText(String navText)

        /**
         * 设置顶部导航栏标题颜色
         *
         * @param navTextColor
         * @return
         */
        public FusionNumberAuthModel.Builder setNavTextColor(@ColorInt int navTextColor)

        /**
         * 运营商协议指定显示顺序,默认0,即第1个协议显示,最大值可为3,即第4个协议显示
         *
         * @param privacyOperatorIndex
         * @return
         */

        public FusionNumberAuthModel.Builder setPrivacyOperatorIndex(@IntRange(from = 0, to = 3) int privacyOperatorIndex)
        /**
         * 协议名称之间连接字符串数组,默认 ["和","、","、"] ,即第一个为"和",其他为"、",按顺序读取,为空则取默认
         *
         * @param privacyConectTexts
         * @return
         */
        public FusionNumberAuthModel.Builder setPrivacyConectTexts(String[] privacyConectTexts)

        /**
         * 设置顶部导航栏返回按钮的图片缩放类型
         *
         * @param navReturnScaleType
         * @return
         */
        public FusionNumberAuthModel.Builder setNavReturnScaleType(ImageView.ScaleType navReturnScaleType) 
        /**
         * 设置Logo图片路径,目前只支持drawable资源文件
         *
         * @param LogoImgPath drawable资源的目录,不需要加后缀,比如图片在drawable中的存放目录是res/drawable-xxhdpi/Logo.png,则传入参数为
         *                    "Logo",即setLogoImgPath("Logo")。
         * @return
         */
        public FusionNumberAuthModel.Builder setLogoImgPath(String LogoImgPath)
        /**
         * 设置Logo是否隐藏
         *
         * @param LogoHidden
         * @return
         */
        public FusionNumberAuthModel.Builder setLogoHidden(boolean LogoHidden) 

        /**
         * 设置手机号掩码颜色
         *
         * @param numberColor
         * @return
         */
        public FusionNumberAuthModel.Builder setNumberColor(@ColorInt int numberColor)

        /**
         * 设置手机号字体大小
         *
         * @param numberSize 单位 sp
         * @return
         */
        @Deprecated
        public FusionNumberAuthModel.Builder setNumberSize(int numberSize)

        /**
         * 设置手机号字体大小
         *
         * @param numberSize 单位 dp
         * @return
         */
        public FusionNumberAuthModel.Builder setNumberSizeDp(int numberSize)

        /**
         * 设置"切换登录方式"控件是否隐藏
         *
         * @param switchAccHidden
         * @return
         */
        public FusionNumberAuthModel.Builder setSwitchAccHidden(boolean switchAccHidden)

        /**
         * 设置"切换登录方式"控件字体颜色
         *
         * @param switchAccTextColor
         * @return
         */
        public FusionNumberAuthModel.Builder setSwitchAccTextColor(@ColorInt int switchAccTextColor)
        /**
         * 设置登录按钮文本内容
         *
         * @param logBtnText
         * @return
         */
        public FusionNumberAuthModel.Builder setLogBtnText(String logBtnText)

        /**
         * 设置登录按钮文字颜色
         *
         * @param logBtnTextColor
         * @return
         */
        public FusionNumberAuthModel.Builder setLogBtnTextColor(@ColorInt int logBtnTextColor)

        /**
         * 设置登录按钮字体大小
         *
         * @param logBtnTextSize 单位 sp
         * @return
         */
        @Deprecated
        public FusionNumberAuthModel.Builder setLogBtnTextSize(int logBtnTextSize)

        /**
         * 设置登录按钮字体大小
         *
         * @param logBtnTextSize 单位 dp
         * @return
         */
        public FusionNumberAuthModel.Builder setLogBtnTextSizeDp(int logBtnTextSize)
        /**
         * 自定义第一个隐私协议,最多允许添加2个自定义隐私协议
         *
         * @param name 协议名称
         * @param url  协议页面的URL
         * @return
         */
        public FusionNumberAuthModel.Builder setAppPrivacyOne(String name, String url)

        /**
         * 自定义第一个隐私协议,最多允许添加2个自定义隐私协议
         *
         * @param name 协议名称
         * @param url  协议页面的URL
         * @return
         */
        public FusionNumberAuthModel.Builder setAppPrivacyTwo(String name, String url)

        /**
         * 自定义第3个隐私协议,最多允许添加2个自定义隐私协议
         *
         * @param name 协议名称
         * @param url  协议页面的URL
         * @return
         */
        public FusionNumberAuthModel.Builder setAppPrivacyThree(String name, String url)
        /**
         * 自定义隐私协议文字颜色,运营商协议以及自定义协议都会使用该颜色。
         *
         * @param baseColor     隐私内容非协议名称部分的文字颜色
         * @param protocolColor 隐私内容协议名称部分的文字颜色
         * @return
         */
        public FusionNumberAuthModel.Builder setAppPrivacyColor(@ColorInt int baseColor, @ColorInt int protocolColor)
        /**
         * 设置slogan文字颜色
         *
         * @param sloganTextColor
         * @return
         */
        public FusionNumberAuthModel.Builder setSloganTextColor(@ColorInt int sloganTextColor)

        /**
         * 设置登录按钮背景图片路径
         *
         * @param logBtnBackgroundPath drawable资源的目录,不需要加后缀,比如图片在drawable中的存放目录是res/drawable-xxhdpi/logBtn.png,则传入参数为
         *                             "logBtn",即setLogBtnBackgroundPath("logBtn")。
         * @return
         */
        public FusionNumberAuthModel.Builder setLogBtnBackgroundPath(String logBtnBackgroundPath)

        /**
         * 设置导航栏返回按钮图片路径
         *
         * @param navReturnImgPath drawable资源的目录,不需要加后缀,比如图片在drawable中的存放目录是res/drawable-xxhdpi/return.png,则传入参数为
         *                         "return",即setNavReturnImgPath("return")。
         * @return
         */
        public FusionNumberAuthModel.Builder setNavReturnImgPath(String navReturnImgPath)

        /**
         * 设置slogan距离顶部导航栏的距离,如果设置了该属性,则{@link #setSloganOffsetY_B(int)}将无效
         *
         * @param sloganOffsetY 单位dp
         * @return
         * @see #setSloganOffsetY_B(int)
         */
        public FusionNumberAuthModel.Builder setSloganOffsetY(int sloganOffsetY) 

        /**
         * 设置Logo距离顶部导航栏的距离,如果设置了该属性,则{@link #setLogoOffsetY_B(int)}将无效
         *
         * @param LogoOffsetY 单位dp
         * @return
         * @see #setLogoOffsetY_B(int)
         */
        public FusionNumberAuthModel.Builder setLogoOffsetY(int LogoOffsetY)

        /**
         * 设置Logo距离父view底部的距离
         *
         * @param LogoOffsetY_B 单位dp
         * @return
         * @see #setLogoOffsetY(int)
         */
        public FusionNumberAuthModel.Builder setLogoOffsetY_B(int LogoOffsetY_B)

        /**
         * 设置手机号掩码距离顶部导航栏的距离,如果设置了该属性,则{@link #setNumFieldOffsetY_B(int)}将无效
         *
         * @param numFieldOffsetY 单位dp
         * @return
         * @see {@link #setNumFieldOffsetY_B(int)}
         */
        public FusionNumberAuthModel.Builder setNumFieldOffsetY(int numFieldOffsetY)

        /**
         * 设置手机号掩码距离父view底部的距离
         *
         * @param numFieldOffsetY_B 单位dp
         * @return
         * @see #setNumFieldOffsetY(int)
         */
        public FusionNumberAuthModel.Builder setNumFieldOffsetY_B(int numFieldOffsetY_B)

        /**
         * 设置切换登录方式控件距离顶部导航栏的距离,如果设置了该属性,则{@link #setSwitchOffsetY_B(int)}将无效
         *
         * @param switchOffsetY 单位dp
         * @return
         * @see #setSwitchOffsetY_B(int)
         */
        public FusionNumberAuthModel.Builder setSwitchOffsetY(int switchOffsetY)
        /**
         * 设置切换登录方式控件距离父view底部的距离
         *
         * @param switchOffsetY_B 单位dp
         * @return
         * @see #setSwitchOffsetY(int)
         */
        public FusionNumberAuthModel.Builder setSwitchOffsetY_B(int switchOffsetY_B)

        /**
         * 设置登录按钮距离顶部导航栏的距离,如果设置了该属性,则{@link #setLogBtnOffsetY_B(int)}将无效
         *
         * @param logBtnOffsetY 单位dp
         * @return
         * @see #setLogBtnOffsetY_B(int)
         */
        public FusionNumberAuthModel.Builder setLogBtnOffsetY(int logBtnOffsetY) 

        /**
         * 设置登录按钮距离父view底部的距离
         *
         * @param logBtnOffsetY_B 单位dp
         * @return
         * @see #setLogBtnOffsetY(int)
         */
        public FusionNumberAuthModel.Builder setLogBtnOffsetY_B(int logBtnOffsetY_B)

        /**
         * 设置隐私协议距离顶部导航栏的距离,如果设置了该属性,则{@link #setPrivacyOffsetY_B(int)}将无效
         *
         * @param privacyOffsetY 单位dp
         * @return
         * @see #setPrivacyOffsetY_B(int)
         */
        public FusionNumberAuthModel.Builder setPrivacyOffsetY(int privacyOffsetY)

        /**
         * 设置隐私协议距离父view底部的距离
         *
         * @param privacyOffsetY_B 单位dp
         * @return
         * @see #setPrivacyOffsetY(int)
         */
        public FusionNumberAuthModel.Builder setPrivacyOffsetY_B(int privacyOffsetY_B)

        /**
         * 设置slogan距离父view底部的距离
         *
         * @param sloganOffsetY_B 单位dp
         * @return
         * @see #setSloganOffsetY(int)
         */
        public FusionNumberAuthModel.Builder setSloganOffsetY_B(int sloganOffsetY_B)

        /**
         * 设置slogan文本内容
         *
         * @param sloganText
         * @return
         */
        public FusionNumberAuthModel.Builder setSloganText(String sloganText)

        /**
         * 设置隐私协议的勾选按钮是否隐藏
         *
         * @param checkboxHidden
         * @return
         */
        public FusionNumberAuthModel.Builder setCheckboxHidden(boolean checkboxHidden)
        /**
         * 设置顶部导航栏文字大小
         *
         * @param navTextSize 单位 sp
         * @return
         */
        @Deprecated
        public FusionNumberAuthModel.Builder setNavTextSize(int navTextSize)

        /**
         * 设置顶部导航栏文字大小
         *
         * @param navTextSize 单位 dp
         * @return
         */
        public FusionNumberAuthModel.Builder setNavTextSizeDp(int navTextSize)
        /**
         * 设置Logo控件的宽
         *
         * @param LogoWidth 单位dp
         * @return
         */
        public FusionNumberAuthModel.Builder setLogoWidth(int LogoWidth)

        /**
         * 设置Logo控件的高
         *
         * @param LogoHeight 单位dp
         * @return
         */
        public FusionNumberAuthModel.Builder setLogoHeight(int LogoHeight)

        /**
         * 设置切换登录方式控件的文字大小
         *
         * @param switchAccTextSize 单位 sp
         * @return
         */
        @Deprecated
        public FusionNumberAuthModel.Builder setSwitchAccTextSize

        /**
         * 设置切换登录方式控件的文字大小
         *
         * @param switchAccTextSize 单位 dp
         * @return
         */
        public FusionNumberAuthModel.Builder setSwitchAccTextSizeDp(int switchAccTextSize) 

        /**
         * 设置切换登录方式控件的文本内容
         *
         * @param switchAccText
         * @return
         */
        public FusionNumberAuthModel.Builder setSwitchAccText(String switchAccText)

        /**
         * 设置slogan文字大小
         *
         * @param sloganTextSize 单位 dp
         * @return
         */
        public FusionNumberAuthModel.Builder setSloganTextSizeDp(int sloganTextSize)

        /**
         * 设置slogan是否隐藏
         *
         * @param sloganHidden
         * @return
         */
        public FusionNumberAuthModel.Builder setSloganHidden(boolean sloganHidden)

        /**
         * 设置隐私协议勾选框未勾选状态时显示时图片的路径
         *
         * @param uncheckedImgPath drawable资源的目录,不需要加后缀,比如图片在drawable中的存放目录是res/drawable-xxhdpi/unchecked.png,则传入参数为
         *                         "unchecked",即setUncheckedImgPath("unchecked")。
         * @return
         */
        public FusionNumberAuthModel.Builder setUncheckedImgPath(String uncheckedImgPath) {
            this.uncheckedImgPath = uncheckedImgPath;
            return this;
        }

        /**
         * 设置隐私协议勾选框已勾选状态时显示的图片的路径
         *
         * @param checkedImgPath drawable资源的目录,不需要加后缀,比如图片在drawable中的存放目录是res/drawable-xxhdpi/checked.png,则传入参数为
         *                       "checked",即setCheckedImgPath("checked")。
         * @return
         */
        public FusionNumberAuthModel.Builder setCheckedImgPath(String checkedImgPath)

        /**
         * 设置隐私协议勾选框初始状态(勾选或者未勾选)
         *
         * @param privacyState true初始时勾选,false初始时不勾选
         * @return
         */
        public FusionNumberAuthModel.Builder setPrivacyState(boolean privacyState)

        /**
         * 设置隐私协议文字对齐方式
         *
         * @param protocolGravity
         * @return
         * @see #setProtocolLayoutGravity(int)
         */
        public FusionNumberAuthModel.Builder setProtocolGravity(int protocolGravity)

        /**
         * 设置状态栏颜色(系统版本 5.0 以上可设置)
         *
         * @param statusBarColor
         * @return
         */
        public FusionNumberAuthModel.Builder setStatusBarColor(@ColorInt int statusBarColor)

        /**
         * 设置状态栏颜色(系统版本 5.0 以上可设置)
         *
         * @param bottomNavColor
         * @return
         */
        public FusionNumberAuthModel.Builder setBottomNavColor(@ColorInt int bottomNavColor)
        /**
         * 设置状态栏字体颜色(系统版本 6.0 以上可设置黑色、白色)
         *
         * @param lightColor true 为黑色,false为白色
         * @return
         */
        public FusionNumberAuthModel.Builder setLightColor(boolean lightColor)

        /**
         * 设置登录按钮宽度
         *
         * @param logBtnWidth 单位 dp
         * @return
         */
        public FusionNumberAuthModel.Builder setLogBtnWidth(int logBtnWidth)
        /**
         * 设置登录按钮高度
         *
         * @param logBtnHeight 单位dp
         * @return
         */
        public FusionNumberAuthModel.Builder setLogBtnHeight(int logBtnHeight)

        /**
         * 设置登录按钮相对于屏幕左右边缘边距
         *
         * @param logBtnMarginLeftAndRight 单位dp
         * @return
         */
        public FusionNumberAuthModel.Builder setLogBtnMarginLeftAndRight(int logBtnMarginLeftAndRight)

        /**
         * 设置隐私协议勾选框的宽
         *
         * @param checkBoxWidth 单位dp
         * @return
         */
        public FusionNumberAuthModel.Builder setCheckBoxWidth(int checkBoxWidth)
        /**
         * 设置隐私协议勾选宽的高
         *
         * @param checkBoxHeight 单位dp
         * @return
         */
        public FusionNumberAuthModel.Builder setCheckBoxHeight(int checkBoxHeight)

        /**
         * 设置号码栏相对于默认位置的X 轴偏移量
         *
         * @param numberFieldOffsetX 单位dp
         * @return
         */
        public FusionNumberAuthModel.Builder setNumberFieldOffsetX(int numberFieldOffsetX)

        /**
         * 设置隐私条款文字大小
         *
         * @param privacyTextSize 单位sp
         * @return
         */
        public FusionNumberAuthModel.Builder setPrivacyTextSize(int privacyTextSize)
        /**
         * 设置隐私条款文字大小
         *
         * @param privacyTextSize 单位dp
         * @return
         */
        public FusionNumberAuthModel.Builder setPrivacyTextSizeDp(int privacyTextSize)

        /**
         * 设置导航栏返回按钮图片宽度
         *
         * @param navReturnImgWidth 单位dp
         * @return
         */
        public FusionNumberAuthModel.Builder setNavReturnImgWidth(int navReturnImgWidth)

        /**
         * 设置导航栏返回按钮图片高度
         *
         * @param navReturnImgHeight 单位dp
         * @return
         */
        public FusionNumberAuthModel.Builder setNavReturnImgHeight(int navReturnImgHeight)

        /**
         * 设置隐私条款距离手机左右边缘的边距
         *
         * @param privacyMargin 单位dp
         * @return
         */
        public FusionNumberAuthModel.Builder setPrivacyMargin(int privacyMargin)
        /**
         * 设置开发者隐私条款前置自定义文案
         *
         * @param privacyBefore
         * @return
         */
        public FusionNumberAuthModel.Builder setPrivacyBefore(String privacyBefore)

        /**
         * 设置开发者隐私条款尾部自定义文案
         *
         * @param privacyEnd
         * @return
         */
        public FusionNumberAuthModel.Builder setPrivacyEnd(String privacyEnd) 

        /**
         * 设置登录loading动画图片路径
         *
         * @param loadingImgPath drawable资源的目录,不需要加后缀,比如图片在drawable中的存放目录是res/drawable-xxhdpi/loading.png,则传入参数为
         *                       "loading",即setLoadingImgPath("loading")。
         * @return Builder
         */
        public FusionNumberAuthModel.Builder setLoadingImgPath(String loadingImgPath) 

        /**
         * 设置授权页宽度
         *
         * @param dialogWidth 授权页宽度 单位DP
         * @return Builder
         */
        public FusionNumberAuthModel.Builder setDialogWidth(int dialogWidth)

        /**
         * 设置授权页高度
         *
         * @param dialogHeight 授权页高度 单位DP
         * @return Builder
         */
        public FusionNumberAuthModel.Builder setDialogHeight(int dialogHeight) 

        /**
         * 设置授权页X轴偏移
         *
         * @param dialogOffsetX 授权页X轴偏移量 单位DP
         * @return Builder
         */
        public FusionNumberAuthModel.Builder setDialogOffsetX(int dialogOffsetX)

        /**
         * 设置授权页Y轴偏移
         *
         * @param dialogOffsetY 授权页Y轴偏移量 单位DP
         * @return Builder
         */
        public FusionNumberAuthModel.Builder setDialogOffsetY(int dialogOffsetY)

        /**
         * @param dialogBottom 设置授权页是否居于底部
         * @return Builder
         */
        public FusionNumberAuthModel.Builder setDialogBottom(boolean dialogBottom) 
        /**
         * 设置授权页背景图
         *
         * @param pageBackgroundPath drawable资源的目录,不需要加后缀,比如图片在drawable中的存放目录是res/drawable-xxhdpi/loading.png,则传入参数为
         *                           "loading",setPageBackgroundPath("loading")。
         * @return Builder
         */
        public FusionNumberAuthModel.Builder setPageBackgroundPath(String pageBackgroundPath)

        /**
         * 设置导航栏返回按钮隐藏
         *
         * @param navReturnHidden true:隐藏,false显示
         * @return Builder
         */
        public FusionNumberAuthModel.Builder setNavReturnHidden(boolean navReturnHidden)

        /**
         * 设置默认导航栏是否隐藏
         *
         * @param navHidden true:隐藏,false显示
         * @return Builder
         */
        public FusionNumberAuthModel.Builder setNavHidden(boolean navHidden)
        /**
         * 设置Logo图片缩放模式
         *
         * @param LogoScaleType
         * @return
         */
        public FusionNumberAuthModel.Builder setLogoScaleType(ImageView.ScaleType LogoScaleType)

        /**
         * 设置状态栏是否隐藏
         *
         * @param statusBarHidden true:隐藏,false显示
         * @return
         */
        public FusionNumberAuthModel.Builder setStatusBarHidden(boolean statusBarHidden)

        /**
         * 设置状态栏UI属性
         *
         * @param statusBarUIFlag 只能设置{@link android.view.View#SYSTEM_UI_FLAG_LOW_PROFILE}和{@link
         *                        android.view.View#SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN}
         *                        状态栏低电量模式:View.SYSTEM_UI_FLAG_LOW_PROFILE
         *                        状态栏沉浸式模式:View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
         * @return Builder
         */
        public FusionNumberAuthModel.Builder setStatusBarUIFlag(@StatusBarUIFlag int statusBarUIFlag)
        /**
         * 设置协议页状态栏颜色(系统版本 5.0 以上可设置)
         * 不设置则与授权页设置一致
         *
         * @param webViewStatusBarColor
         * @return
         */
        public FusionNumberAuthModel.Builder setWebViewStatusBarColor(@ColorInt int webViewStatusBarColor) 
        

        /**
         * 设置协议页顶部导航栏背景色
         * 不设置则与授权页设置一致
         *
         * @param webNavColor
         * @return
         */
        public FusionNumberAuthModel.Builder setWebNavColor(@ColorInt int webNavColor)

        /**
         * 设置协议页顶部导航栏标题颜色
         * 不设置则与授权页设置一致
         *
         * @param webNavTextColor
         * @return
         */
        public FusionNumberAuthModel.Builder setWebNavTextColor(@ColorInt int webNavTextColor)

        /**
         * 设置协议页顶部导航栏文字大小
         * 不设置则与授权页设置一致
         *
         * @param webNavTextSize 单位 sp
         * @return
         */
        @Deprecated
        public FusionNumberAuthModel.Builder setWebNavTextSize(int webNavTextSize)
        /**
         * 设置协议页顶部导航栏文字大小
         * 不设置则与授权页设置一致
         *
         * @param webNavTextSize 单位 sp
         * @return
         */
        public FusionNumberAuthModel.Builder setWebNavTextSizeDp(int webNavTextSize)

        /**
         * 设置协议页导航栏返回按钮图片路径
         * 不设置则与授权页设置一致
         *
         * @param webNavReturnImgPath drawable资源的目录,不需要加后缀,比如图片在drawable中的存放目录是res/drawable-xxhdpi/return.png,则传入参数为
         *                            "return",即setNavReturnImgPath("return")。
         * @return
         */
        public FusionNumberAuthModel.Builder setWebNavReturnImgPath(String webNavReturnImgPath)
        /**
         * 设置授权页唤起动画
         *
         * @param authPageActIn anim资源的目录,不需要加后缀,比如动画在anim目录中的存放目录是res/anim/authPageActIn.xml,则传入参数为
         *                      "authPageActIn",setAuthPageActIn("authPageActIn", "activityOut")。
         * @param activityOut
         * @return
         */
        public FusionNumberAuthModel.Builder setAuthPageActIn(String authPageActIn, String activityOut)

        /**
         * 设置授权页退出动画
         *
         * @param authPageActOut anim资源的目录,不需要加后缀,比如动画在anim目录中的存放目录是res/anim/authPageActIn.xml,则传入参数为
         *                       "authPageActIn",setAuthPageActIn("authPageActIn", "activityOut")。
         * @param activityIn
         * @return
         */
        public FusionNumberAuthModel.Builder setAuthPageActOut(String authPageActOut, String activityIn) 


        /**
         * 设置协议选择框未勾选时点击登录按钮协议文字动画效果
         *
         * @param protocolShakePath anim资源的目录,不需要加后缀,比如动画在anim目录中的存放目录是res/anim/protocol_shake.xml,则传入参数为
         *                      "authPageActIn",setAuthPageActIn("authPageActIn", "activityOut")。
         * @param
         * @return
         */
        public FusionNumberAuthModel.Builder setProtocolShakePath(String protocolShakePath) 
        /**
         * 设置运营商协议前缀符号
         *
         * @param vendorPrivacyPrefix 只能设置一个字符,且只能设置<>()《》【】『』[]()中的一个
         * @return
         */
        public FusionNumberAuthModel.Builder setVendorPrivacyPrefix(String vendorPrivacyPrefix) {
            this.vendorPrivacyPrefix = vendorPrivacyPrefix;
            return this;
        }

        /**
         * 设置运营商协议后缀符号
         *
         * @param vendorPrivacySuffix 只能设置一个字符,且只能设置<>()《》【】『』[]()中的一个
         * @return
         */
        public FusionNumberAuthModel.Builder setVendorPrivacySuffix(String vendorPrivacySuffix) 
        /**
         * 设置屏幕方向
         *
         * @param screenOrientation 取值为{@link ActivityInfo}中的屏幕方向常量值,比如
         *                          {@link ActivityInfo#SCREEN_ORIENTATION_LANDSCAPE}、
         *                          {@link ActivityInfo#SCREEN_ORIENTATION_PORTRAIT}
         * @return
         */
        public FusionNumberAuthModel.Builder setScreenOrientation(@ScreenOrientation int screenOrientation)

        /**
         * 设置登录按钮X轴偏移量,如果设置了{@link #setLogBtnMarginLeftAndRight(int)},并且布局对齐方式为左对齐或者右对齐
         * ,则会在margin的基础上再增加offsetX的偏移量,如果是居中对齐,则仅仅会在居中的基础上再做offsetX的偏移。
         *
         * @param offsetX 单位 dp
         * @return
         */
        public FusionNumberAuthModel.Builder setLogBtnOffsetX(int offsetX)
        /**
         * 设置登录按钮布局对齐方式
         *
         * @param layoutGravity 只支持{@link Gravity#CENTER_HORIZONTAL}、{@link Gravity#LEFT}、{@link Gravity#RIGHT}三种对齐方式
         * @return
         */
        public FusionNumberAuthModel.Builder setLogBtnLayoutGravity(int layoutGravity)

        /**
         * 设置手机号掩码的布局对齐方式
         *
         * @param layoutGravity 只支持{@link Gravity#CENTER_HORIZONTAL}、{@link Gravity#LEFT}、{@link Gravity#RIGHT}三种对齐方式
         * @return
         */
        public FusionNumberAuthModel.Builder setNumberLayoutGravity(int layoutGravity)

        /**
         * 设置隐私栏的布局对齐方式,该接口控制了整个隐私栏(包含checkbox)在其父布局中的对齐方式,而{@link #setProtocolGravity(int)}控制的
         * 是隐私协议文字内容在文本框中的对齐方式。
         *
         * @param layoutGravity 只支持{@link Gravity#CENTER_HORIZONTAL}、{@link Gravity#LEFT}、{@link Gravity#RIGHT}三种对齐方式
         * @return
         */
        public FusionNumberAuthModel.Builder setProtocolLayoutGravity(int layoutGravity)

        /**
         * 设置隐私栏X轴偏移量
         *
         * @param offsetX 单位dp
         * @return
         */
        public FusionNumberAuthModel.Builder setPrivacyOffsetX(int offsetX)

        public FusionNumberAuthModel.Builder setHiddenLoading(boolean hiddenLoading)

        /**
         * 设置checkbox未勾选时,点击登录按钮toast是否显示
         *
         * @param logBtnToastHidden
         * @return
         */
        public FusionNumberAuthModel.Builder setLogBtnToastHidden(boolean logBtnToastHidden)

        public FusionNumberAuthModel.Builder setWebSupportedJavascript(boolean isSupported) 
        //设置返回按钮图片
        public FusionNumberAuthModel.Builder setNavReturnImgDrawable(Drawable navReturnImgDrawable) 
        
        //设置Logo图片
        public FusionNumberAuthModel.Builder setLogoImgDrawable(Drawable LogoImgDrawable)
        //设置checkbox非选择状态图片
        public FusionNumberAuthModel.Builder setUncheckedImgDrawable(Drawable uncheckedImgDrawable)
        //设置checkbox选择状态图片
        public FusionNumberAuthModel.Builder setCheckedImgDrawable(Drawable checkedImgDrawable)
        //设置一键登录按钮背景图片
        public FusionNumberAuthModel.Builder setLogBtnBackgroundDrawable(Drawable logBtnBackgroundDrawable)
        //设置界面背景图
        public FusionNumberAuthModel.Builder setPageBackgroundDrawable(Drawable pageBackgroundDrawable)
       //loading背景图
        public FusionNumberAuthModel.Builder setLoadingImgDrawable(Drawable loadingImgDrawable)

       //号码认证二次弹窗是否显示
        public FusionNumberAuthModel.Builder setPrivacyAlertIsNeedShow(boolean privacyAlertIsNeedShow)
        //二次弹窗同意后是否自动登录
        public FusionNumberAuthModel.Builder setPrivacyAlertIsNeedAutoLogin(boolean privacyAlertIsNeedAutoLogin)
        //二次弹窗点击窗外区域弹窗是否消失
        public FusionNumberAuthModel.Builder setTapPrivacyAlertMaskCloseAlert(boolean tapPrivacyAlertMaskCloseAlert)
        //二次弹窗显示位置
        public FusionNumberAuthModel.Builder setPrivacyAlertAlignment(int privacyAlertAlignment)
        //二次弹窗宽度
        public FusionNumberAuthModel.Builder setPrivacyAlertWidth(int privacyAlertWidth)
       //二次弹窗高度
        public FusionNumberAuthModel.Builder setPrivacyAlertHeight(int privacyAlertHeight)
        //二次弹窗显示x轴
        public FusionNumberAuthModel.Builder setPrivacyAlertOffsetX(int privacyAlertOffsetX)
         //二次弹窗显示y轴
        public FusionNumberAuthModel.Builder setPrivacyAlertOffsetY(int privacyAlertOffsetY)
        //二次弹窗开始动画
        public FusionNumberAuthModel.Builder setPrivacyAlertEntryAnimation(String privacyAlertEntryAnimation)
        //二次弹窗退出动画
        public FusionNumberAuthModel.Builder setPrivacyAlertExitAnimation(String privacyAlertExitAnimation)
        //二次弹窗圆角
        public FusionNumberAuthModel.Builder setPrivacyAlertCornerRadiusArray(int[] privacyAlertCornerRadiusArray)
        //二次弹窗背景颜色
        public FusionNumberAuthModel.Builder setPrivacyAlertBackgroundColor(int privacyAlertBackgroundColor)
        //二次弹窗title背景颜色
        public FusionNumberAuthModel.Builder setPrivacyAlertTitleBackgroundColor(int privacyAlertTitleBackgroundColor)
        //二次弹窗文本显示背景颜色
        public FusionNumberAuthModel.Builder setPrivacyAlertContentBackgroundColor(int privacyAlertContentBackgroundColor)
        //二次弹窗透明度
        public FusionNumberAuthModel.Builder setPrivacyAlertAlpha(float privacyAlertAlpha)
        //二次弹窗背景蒙层透明度
        public FusionNumberAuthModel.Builder setPrivacyAlertMaskAlpha(float privacyAlertMaskAlpha)


        //二次弹窗title字体大小
        public FusionNumberAuthModel.Builder setPrivacyAlertTitleTextSize(int privacyAlertTitleTextSize)
        //二次弹窗title 字体颜色
        public FusionNumberAuthModel.Builder setPrivacyAlertTitleColor(int privacyAlertTitleColor)
        //二次弹窗title文字居中方式
        public FusionNumberAuthModel.Builder setPrivacyAlertTitleAlignment(int privacyAlertTitleAlignment)
        //二次弹窗title x坐标
        public FusionNumberAuthModel.Builder setPrivacyAlertTitleOffsetX(int privacyAlertTitleOffsetX)
        //二次弹窗title y坐标
        public FusionNumberAuthModel.Builder setPrivacyAlertTitleOffsetY(int privacyAlertTitleOffsetY)

       //二次弹窗文本协议颜色
        public FusionNumberAuthModel.Builder setPrivacyAlertContentTextSize(int privacyAlertContentTextSize)
        //二次弹窗文本颜色
        public FusionNumberAuthModel.Builder setPrivacyAlertContentColor(int privacyAlertContentColor)
        //二次弹窗文本颜色
        public FusionNumberAuthModel.Builder setPrivacyAlertContentBaseColor(int privacyAlertContentBaseColor)
        //二次弹窗文本居中方式
        public FusionNumberAuthModel.Builder setPrivacyAlertContentAlignment(int privacyAlertContentAlignment)
        //二次弹窗文本显示位置左右间距
        public FusionNumberAuthModel.Builder setPrivacyAlertContentHorizontalMargin(int privacyAlertContentHorizontalMargin)
        //二次弹窗文本显示位置上下间距
        public FusionNumberAuthModel.Builder setPrivacyAlertContentVerticalMargin(int privacyAlertContentVerticalMargin)
       //二次弹窗背景路径
        public FusionNumberAuthModel.Builder setPrivacyAlertBtnBackgroundImgPath(String privacyAlertBtnBackgroundImgPath)
        //二次弹窗确认按钮字体颜色
        public FusionNumberAuthModel.Builder setPrivacyAlertBtnTextColor(int privacyAlertBtnTextColor)
        //二次弹窗确认按钮字体颜色路径
        public FusionNumberAuthModel.Builder setPrivacyAlertBtnTextColorPath(String privacyAlertBtnTextColorPath)
        //二次弹窗确认按钮字体大小
        public FusionNumberAuthModel.Builder setPrivacyAlertBtnTextSize(int privacyAlertBtnTextSize) 
        //二次弹窗背景
        public FusionNumberAuthModel.Builder setPrivacyAlertBtnBackgroundImgDrawable(Drawable privacyAlertBtnBackgroundImgDrawable)
        //二次弹窗按钮宽度
        public FusionNumberAuthModel.Builder setPrivacyAlertBtnWidth(int privacyAlertBtnWidth) 
        //二次弹窗按钮高度
        public FusionNumberAuthModel.Builder setPrivacyAlertBtnHeigth(int privacyAlertBtnHeigth)
        //关闭按钮是否显示
        public FusionNumberAuthModel.Builder setPrivacyAlertCloseBtnShow(boolean privacyAlertCloseBtnShow) 
        //关闭按钮图片路径
        public FusionNumberAuthModel.Builder setPrivacyAlertCloseImagPath(String privacyAlertCloseImagPath)
        //关闭按钮图片显示方式
        public FusionNumberAuthModel.Builder setPrivacyAlertCloseScaleType(ImageView.ScaleType privacyAlertCloseScaleType)
        //关闭按钮图片
        public FusionNumberAuthModel.Builder setPrivacyAlertCloseImagDrawable (Drawable privacyAlertCloseImagDrawable)
        //关闭按钮宽度
        public FusionNumberAuthModel.Builder setPrivacyAlertCloseImgWidth(int privacyAlertCloseImgWidth) 
       //关闭按钮高度
        public FusionNumberAuthModel.Builder setPrivacyAlertCloseImgHeight(int privacyAlertCloseImgHeight) 
        //背景蒙层是否显示
        public FusionNumberAuthModel.Builder setPrivacyAlertMaskIsNeedShow(boolean privacyAlertMaskIsNeedShow) 
    }
}

短信认证自定义UI参数

 public class AlicomFusionVerifyCodeView {   
     //顶部title区域
    private RelativeLayout titleRl;
    //返回按钮
    private ImageView returnImg;
    //标题文本框
    private TextView titleContentTV;
    //自动填充手机号区域
    private AlicomFusionAutoInputView autoInputView;
    //手动输入手机号区域
    private AlicomFusionInputView inputView;
    //输入及发送验证码区域
    private AlicomFusionSendVerifyCodeView sendVerifyCodeView;
 //获取验证码
 public void verifyCodeBtnClick(String phoneNumber)
//校验验证码
public void submitVerifyCodeBtnClick(String phoneNumber,String code)
}

自动填充手机号区域

public class AlicomFusionAutoInputView {
 /**自动填充布局上方显示手机号及提示信息*/
 private RelativeLayout autoInputMsgRL;
 /**自动填充布局手机号展示*/
 private TextView autoInputPhoneNumTV;
 /**自动填充布局提示信息*/
 private TextView autoInputPhoneHintTV;
 /**自动填充布局获取验证码*/
 private TextView autoInputRequestCodeTV;
}

手动输入手机号区域

public class AlicomFusionInputView {
 /**国家号及手机号输入框区域*/
 private RelativeLayout inputNumberContentRL;
 /**国家号*/
 private TextView mCountryTV;
 /**手机号输入框*/
 private EditText inputNumberET;
 /**手动输入手机号布局获取验证码*/
 private TextView inputNumberRequestCodeTV;
 /**协议区域*/
 private RelativeLayout privacyRL;
 /**协议复选框*/
 private CheckBox agreePrivacy;
 /**协议文本*/
 private TextView privacyTV;
 }

输入及发送验证码区域

public class AlicomFusionSendVerifyCodeView {
/**提示信息*/
 private TextView sendSmsHint;
/**验证码输入区域*/
 private RelativeLayout sendSmsCodeRL;
/**第⼀位验证码*/
 private EditText firstCode;
/**第⼆位验证码*/
 private EditText secondCode;
/**第三位验证码*/
 private EditText thirdCode;
/**第四位验证码*/
 private EditText fourCode;
/**第五位验证码*/
 private EditText fivthCode;
/**第六位验证码*/
 private EditText sixthCode;
/**发送验证码按钮*/
 private TextView sendSmsCode;
}

上行短信认证自定义UI

public class AlicomFusionUpSMSView {
 //上行短信界面顶部导航区域
 private RelativeLayout titleRl;
 //返回按钮
 private ImageView returnImg;
 //title文本
 private TextView titleContentTV;
 //提示信息区域
 private RelativeLayout remindRl;
 //提示信息文本框
 private TextView smsRemindTV;
 //短信内容区域
 private RelativeLayout smsContentRl;
 //短信内容文本框
 private TextView smsContentTV;
 //接收号码区域
 private RelativeLayout receiveSmsNumberRl;
 //接收号码文本框
 private TextView receiveSmsNumberTV;
 //⽴即发送短信按钮
 private TextView sendSmsTV;
 //我⼀发送短信按钮
 private TextView HadSenTSmsTV;
 //发送短信
 public void gotoSendUpSms(String receivePhoneNumber,String verifyCode
)
 //发送短信校验
 public void upSmsAlreadySend()
}

SDK回调说明

主流程回调(AlicomFusionAuthCallBack

  • 流程各个节点运行状态都通过回调来通知用户。

  • 用户在收到相应回调前属于节点运行状态,此状态下startSceneWithTemplateId、continueSceneWithTemplateId、stopSceneWithTemplateId调用无效。

  /**
     *  token需要更新只在超时调用获取
     *  @note 必选回调,handler初始化&历史Token过期前5分钟,会触发此回调,由SDK维护token的生命周期
     *  @return token,APP更新最新token后,组装Token返回给到SDK,SDK会通过此Token进行鉴权更新
     *  用户可在此处进行token获取,两次请求,每次30s,60s后无法获取会报token获取超时
     */
    AlicomFusionAuthToken onSDKTokenUpdate();
    /**
     *  token鉴权成功
     *  @note 必选回调,token鉴权成功后,才可以使用startScene接口拉起场景
     *  @note 不建议在本回调中直接调用startScene接口,本回调跟随token鉴权事件触发,可能存在多次回调
     *  startSceneWithTemplateId开始场景必须在该回调后进行,具体逻辑参考demo
     */
    void onSDKTokenAuthSuccess();
    /**
     *  token鉴权失败
     *  @note 必选回调,token初次鉴权失败&token更新后鉴权失败均会触发此回调
     *  @note token鉴权失败后,无法继续使用SDK的功能,请销毁SDK后重新初始化
     *  @param failToken 错误token
     *  @param error 错误定义
     */
    void onSDKTokenAuthFailure(AlicomFusionAuthToken failToken, AlicomFusionEvent error);
    /**
     *  认证成功
     *  @note 必选回调
     *  @note 可以使用码号效验maskToken去APP Server做最终验证换取真实手机号码,如果换取手机号失败,可以通过SDK的continue接口继续后续场景流程
     *  @param token 换号校验token
     *  @param nodeName 获取token的节点名称
     *  @param event verify成功事件
     *  认证成功即各节点成功获取相应token,用户可使用相应token进行换号或登录操作,根据操作反馈选择继续或中断流程
     *  具体逻辑参考demo
     */
    void onVerifySuccess(String token,String nodeName,AlicomFusionEvent event);


    /** 中途认证节点,需要知道中途认证结果,否则影响流程继续执行
     *  @note 必选回调
     *  @note 可以使用码号效验maskToken去APP Server做最终验证换取真实手机号码,通过resultBlock告知SDK验证结果,如果失败则SDK不进行任何操作,成功则进入下一个节点
     *  @param nodeName 获取token的节点名称
     *  @param maskToken 换号校验token
     *  @param event  事件
     *  @param verifyResult 回调
     *  该回调出现在换号场景对当前登录账号获取token进行验证,根据验证结果调用HalfWayVerifyResult回调的verifyResult方法
     *  决定流程走向,具体逻辑参考demo
     */
     void onHalfWayVerifySuccess(String nodeName, String maskToken,AlicomFusionEvent event,HalfWayVerifyResult verifyResult);

    /**
     *  认证失败
     *  @note 必选回调
     *  @note 当接收到这个回调的时候说明在当前场景中出现获取token失败的情况,是否继续由接入方控制
     *  @param error 获取token失败事件
     *  @param nodeName 获取token的节点名称
     *  认证失败回调,如号码认证中无法拉起授权页,token获取失败,短信界面无法获取短信或者开启手机号校验
	 *  时输入手机号与传入手机号不符及开启自动填充后传入手机号小于11位,上行界面获取上行信息失败等情况
     *  认证失败后可选择继续或者中断流程,具体逻辑参考demo
     */
    void onVerifyFailed(AlicomFusionEvent error,String nodeName);
    /**
     *  场景流程结束 正常加异常结束
     *  @note 必选回调,认证流程结束,认证失败,不可逆
     *  @param event 错误定义
     *  融合认证SDK内部流程已结束,需要用户调用stopSceneWithTemplateId中断流程
     */
    void onTemplateFinish(AlicomFusionEvent event);
    /**
     *  场景事件回调
     *  @note 可选回调,SDK场景流程中各个界面点击事件&界面跳转事件等UI相关回调
     *  @note 本回调接口仅做事件通知,不可再此回调内处理业务逻辑
     *  @param event 点击事件 用户操作记录
     *  对SDK内部关键节点运行回调,辅助开发,快速定位问题
     */
    void onAuthEvent(AlicomFusionEvent event);

    /**
     *  填充手机号,用于校验手机号是否和输入的一致,或者重新绑定手机号场景自动填充手机号
     *  @note 必选回调,SDK内置UI部分手机号
     *  @param nodeId 节点id
     *  @param event 事件
     *  @return 返回当前用户正在使用的手机号用于下一步操作
     *  如果开启自动填充或者自动校验,用户需传入相应号码继续流程,具体逻辑参考demo
     */
    String onGetPhoneNumberForVerification(String nodeId,AlicomFusionEvent event);

    /**
     *  认证中断
     *  @note 必选回调
     *  @note 认证流程临时中断,APP可根据不同事件显示对应的提示信息
     *  @note 触发条件:1. 未勾选隐私协议框,进行认证;2. 验证手机号码输入格式错误,3sdk开始加载某个节点和结束加载某个节点,4、相关的接口可用校验
     *  @param event 中断原因
     *  流程无法进行停留在当前界面,此回调处于节点进行状态,开始继续或中断方法无效
     */
    void onVerifyInterrupt(AlicomFusionEvent event);

使用示例

mAlicomFusionAuthCallBack = new AlicomFusionAuthCallBack() {
            @Override
            public AlicomFusionAuthToken onSDKTokenUpdate() {
                Log.d(TAG, "AlicomFusionAuthCallBack---onSDKTokenUpdate");
                AlicomFusionAuthToken token=new AlicomFusionAuthToken();
                CountDownLatch latch=new CountDownLatch(1);
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        GlobalInfoManager.getInstance().setToken(HttpRequestUtil.getAuthToken(GlobalInfoManager.getInstance().getContext()));
                        latch.countDown();
                    }
                }).start();
                try {
                    latch.await();
                    token.setAuthToken(GlobalInfoManager.getInstance().getToken());
                } catch (InterruptedException e) {
                }
                return token;
           }

            @Override
            public void onSDKTokenAuthSuccess() {
                Log.d(TAG, "AlicomFusionAuthCallBack---onSDKTokenAuthSuccess");
                verifySuccess=true;
            }

            @Override
            public void onSDKTokenAuthFailure(AlicomFusionAuthToken token, AlicomFusionEvent alicomFusionEvent) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onSDKTokenAuthFailure "+alicomFusionEvent.toString());
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        Looper.prepare();
                        String token = HttpRequestUtil.getAuthToken(GlobalInfoManager.getInstance().getContext());
                        GlobalInfoManager.getInstance().setToken(token);
                        AlicomFusionAuthToken authToken=new AlicomFusionAuthToken();
                        authToken.setAuthToken(GlobalInfoManager.getInstance().getToken());
                        mAlicomFusionBusiness.updateToken(authToken);
                    }
                }).start();
            }

            @Override
            public void onVerifySuccess(String token, String s1, AlicomFusionEvent alicomFusionEvent) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onVerifySuccess  " +token);
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        String mobilNum = HttpRequestUtil.verifyToken(GlobalInfoManager.getInstance().getContext(), token);
                        updateBusiness(mobilNum,s1);
                    }
                }).start();
            }

            @Override
            public void onHalfWayVerifySuccess(String nodeName, String maskToken, AlicomFusionEvent alicomFusionEvent, HalfWayVerifyResult halfWayVerifyResult) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onHalfWayVerifySuccess  "+maskToken);
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        String result = HttpRequestUtil.verifyToken(GlobalInfoManager.getInstance().getContext(), maskToken);
                        updateBusinessHalfWay(result,halfWayVerifyResult,nodeName);
                    }
                }).start();
            }

            @Override
            public void onVerifyFailed(AlicomFusionEvent alicomFusionEvent, String s) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onVerifyFailed "+alicomFusionEvent.toString()());
                mAlicomFusionBusiness.continueSceneWithTemplateId("100001",false);
            }

            @Override
            public void onTemplateFinish(AlicomFusionEvent alicomFusionEvent) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onTemplateFinish  "+alicomFusionEvent.toString());
                sum=0;
                mAlicomFusionBusiness.stopSceneWithTemplateId("100001");
            }

            @Override
            public void onAuthEvent(AlicomFusionEvent alicomFusionEvent) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onAuthEvent"+alicomFusionEvent.toString());
            }

            @Override
            public String onGetPhoneNumberForVerification(String s, AlicomFusionEvent alicomFusionEvent) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onGetPhoneNumberForVerification");
                return GlobalInfoManager.getInstance().getUserInfo();
            }

            @Override
            public void onVerifyInterrupt(AlicomFusionEvent alicomFusionEvent) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onVerifyInterrupt"+alicomFusionEvent.toString());
            }
        };
        mAlicomFusionBusiness.setAlicomFusionAuthCallBack(mAlicomFusionAuthCallBack);

界面UI流程回调(AlicomFusionAuthUICallBack

/**
 * ⼀键登录自UI注意,请不要调整view id属性否则可能造成部分功能无法使用
 * @note ⾃定义⼀键登录相关UI界面,⼀键登录界面不可100%完全自定义,请通过AlicomFusionNumberAuthModel参数进行修改
 * @param templateId 场景ID
 * @param nodeId 节点ID
 * @param authConfig 自定义UI属性
 */
void onPhoneNumberVerifyUICustomView(String templateId,String nodeId, FusionNumberAuthModel authConfig);
/**
 * 短信验证码认证自定义UI注意,请不要调整view id属性否则可能造成部分功能无法使用
 * @note 短信验证码界面修改
 * @param templateId 场景ID
 * @param nodeId 节点ID
 * @param isAutoInput 是否自动填充手机用户配置autoNumberShow值进行判断
 * 是否填充通过AlicomFusionAuthCallBack回调的onGetPhoneNumberForVerification方法传入的手机号
 * @param view 短信验证码界面view
 */
void onSMSCodeVerifyUICustomView(String templateId,String nodeId,booleanisAutoInput, AlicomFusionVerifyCodeView view);
/**
 * 上⾏短信认证自定义UI注意,请不要调整view id属性否则可能造成部分功能无法使用
 * @note 上行短信认证界面相关UI修改
 * @param templateId 场景ID
 * @param nodeId 节点ID
 * @param view 上行短信认证界面view
 * @param receivePhoneNumber 短信接收号码
 * @param verifyCode 短信内容
 */
void onSMSSendVerifyUICustomView(String templateId,String nodeId, AlicomFusionUpSMSView view,String receivePhoneNumber,String verifyCode);

配置授权页导航栏

方法

类型

说明

setStatusBarColor

int

设置状态栏颜色(系统版本5.0以上可设置)。

setLightColor

boolean

设置状态栏字体颜色(系统版本6.0以上可设置)。取值:

  • true(默认值):表示字体颜色为黑色。

  • false:表示字体颜色为白色。

setNavColor

int

设置导航栏背景颜色。

setNavText

String

设置导航栏标题文字。

setNavTextColor

int

设置导航栏标题文字颜色。

setNavReturnImgPath

String

设置导航栏返回按钮图片路径。

setnavReturnImgWidth

int

设置导航栏返回按钮图片宽度,单位dp。

setnavReturnImgHeight

int

设置导航栏返回按钮图片高度,单位dp。

setNavReturnHidden

boolean

设置导航栏返回按钮是否隐藏。取值:

  • true:表示隐藏。

  • false:表示显示。

setNavReturnScaleType

ImageView.ScaleType

设置顶部导航栏返回按钮的图片缩放类型。

setNavHidden

boolean

设置默认导航栏是否隐藏。取值:

  • true:表示隐藏。

  • false:表示显示。

setStatusBarHidden

boolean

设置状态栏是否隐藏。取值:

  • true:表示隐藏。

  • false:表示显示。

setStatusBarUIFlag

int

设置状态栏UI属性,属性类型仅支持:

  • View.SYSTEM_UI_FLAG_LOW_PROFILE:非全屏显示状态,状态栏低电量模式。

  • View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:全屏显示,状态栏沉浸式模式。

setWebViewStatusBarColor

int

设置协议页状态栏颜色(系统版本5.0以上可设置),不设置则与授权页设置一致。

setWebNavColor

int

设置协议页顶部导航栏背景色,不设置则与授权页设置一致。

setWebNavTextColor

int

设置协议页顶部导航栏标题颜色,不设置则与授权页设置一致。

setWebNavTextSizeDP

int

设置协议页顶部导航栏文字大小,不设置则与授权页设置一致。

webNavReturnImgPath

String

设置协议页导航栏返回按钮图片路径,不设置则与授权页设置一致。

setBottomNavColor

int

设置状态栏颜色(系统版本5.0以上可设置)。

setNavTextSizeDp

int

设置导航栏标题文字大小(单位:dp,字体大小不随系统变化)。

setNavReturnImgDrawable

Drawable

设置导航栏返回按钮图片。

配置授权页Logo

方法

类型

说明

setLogoHidden

boolean

设置Logo是否隐藏。取值:

  • true:表示隐藏。

  • false:表示显示。

setLogoImgPath

String

设置Logo图片路径。

setLogoImgDrawable

Drawable

设置Logo图片。

setLogoWidth

int

设置Logo控件宽度(单位:dp)。

setLogoHeight

int

设置Logo控件高度(单位:dp)。

setLogoOffsetY

int

设置Logo控件相对导航栏顶部的距离(单位:dp)。

setLogoOffsetY_B

int

设置Logo控件相对底部的距离(单位:dp)。

setLogoScaleType

ImageView.ScaleType

设置Logo图片缩放模式。模式类型:

  • center:保持原图大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。

  • centerCrop:原图的中心对准ImageView的中心,等比例放大原图,直到填满ImageView为止,对原图超过ImageView的部分做裁剪处理。

  • centerInside:图片居中显示,按比例缩小原图的size等于或小于ImageView。如果原图的size本身就小于ImageView的size,则原图的size不做任何处理,居中显示在ImageView。

  • matrix:不改变原图的大小,从ImageView左上角绘制原图,超过部分裁剪处理。

  • fitCenter:原图按比例扩大或缩小到ImageView的ImageView的高度,居中显示。

  • fitEnd:原图按比例扩大或缩小到ImageView的高度,显示在ImageView的下部分位置。

  • fitStart:原图按比例扩大或缩小到ImageView的高度,显示在ImageView的上部分位置。

  • fitXY:原图按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageView。

配置授权页Slogan

方法

类型

说明

setSloganText

String

设置Slogan文字内容。

setSloganTextColor

int

设置Slogan文字颜色。

setSloganOffsetY

int

设置Slogan相对导航栏顶部的距离(单位:dp)。

setSloganOffsetY_B

int

设置Slogan相对底部的距离(单位:dp)。

setSloganTextSizeDp

int

设置Slogan文字大小(单位:dp,字体大小不随系统变化)。

setSloganHidden

boolean

设置Slogan是否隐藏。

配置授权页号码栏

方法

类型

说明

setNumberColor

int

设置手机号掩码颜色。

setNumberSize

int

设置手机号字体大小。

setNumFieldOffsetY

int

设置号码栏控件相对导航栏顶部的位移(单位:dp)。

setNumFieldOffsetY_B

int

设置号码栏控件相对底部的位移(单位:dp)。

setNumberFieldOffsetX

int

设置号码栏相对于默认位置的X轴偏移量(单位:dp)。

setNumberLayoutGravity

int

设置手机号掩码的布局对齐方式,支持以下三种对齐方式:

  • Gravity.CENTER_HORIZONTAL:水平居中

  • Gravity.LEFT:左对齐

  • Gravity.RIGHT:右对齐

setNumberSizeDp

int

设置手机号码字体大小(单位:dp,字体大小不随系统变化)。

配置授权页登录按钮

方法

类型

说明

setLogBtnText

String

设置登录按钮文本内容。

setLogBtnTextColor

int

设置登录按钮文字颜色。

setLogBtnWidth

int

设置登录按钮宽度(单位:dp)。

setLogBtnHeight

int

设置登录按钮高度(单位:dp)。

setLogBtnMarginLeftAndRight

int

设置登录按钮相对于屏幕左右边缘边距(单位:dp)。

setLogBtnBackgroundPath

String

设置登录按钮背景图片的路径。

setLogBtnOffsetY

int

设置登录按钮相对导航栏顶部的位移(单位:dp)。

setLogBtnOffsetY_B

int

设置登录按钮相对底部的位移(单位:dp)。

setLoadingImgPath

String

设置登录loading dialog动画图片的路径。

setLogBtnOffsetX

int

设置登录按钮X轴偏移量。

说明

如果设置了setLogBtnMarginLeftAndRight,且布局对齐方式为左对齐右对齐,则会在margin的基础上再增加offsetX的偏移量,如果是居中对齐,则会在居中的基础上再做offsetX的偏移。

setLogBtnLayoutGravity

Gravity

设置登录按钮布局对齐方式,支持以下三种对齐方式:

  • Gravity.CENTER_HORIZONTAL:水平居中

  • Gravity.LEFT:左对齐

  • Gravity.RIGHT:右对齐

setLogBtnTextSizeDp

int

设置登录按钮文字大小(单位:dp,字体大小不随系统变化)。

setLogBtnBackgroundDrawable

Drawable

设置一键登录按钮背景图片。

setLoadingImgDrawable

Drawable

设置登录loading dialog背景图片。

配置授权页隐私栏

方法

类型

说明

setAppPrivacyOne

String, String

自定义第一条隐私协议(名称,URL)。

setAppPrivacyTwo

String, String

自定义第二条隐私协议(名称,URL)。

setAppPrivacyColor

int, int

自定义隐私协议文字颜色(运营商协议和自定义协议都会使用此处设置的颜色)。

setPrivacyOffsetY

int

设置隐私协议相对导航栏顶部的位移(单位:dp)。

setPrivacyOffsetY_B

int

设置隐私协议相对底部的位移(单位:dp)。

setCheckBoxWidth

int

设置隐私协议勾选框的宽(单位:dp)。

setCheckBoxHeight

int

设置隐私协议勾选框的高(单位:dp)。

setPrivacyState

boolean

设置隐私协议是否默认勾选。取值:

  • true:初始状态时勾选。

  • false:初始状态时不勾选。

setProtocolGravity

int

设置隐私协议文字对齐方式(单位:Gravity.xxx)。

setPrivacyMargin

int

设置隐私协议距离手机左右边缘的边距(单位:dp)。

setPrivacyBefore

String

设置开发者隐私条款前置自定义文案。

setPrivacyEnd

String

设置开发者隐私条款尾部自定义文案。

setCheckboxHidden

boolean

设置隐私协议的勾选按钮是否隐藏。取值:

  • true:表示隐藏。

  • false:表示显示。

setUncheckedImgPath

String

设置隐私协议勾选框未勾选时显示图片的路径。

setCheckedImgPath

String

设置隐私协议勾选框已勾选时显示图片的路径。

setCheckBoxMarginTop

int

设置协议勾选框上边距。

setProtocolShakePath

String

设置协议勾选框未勾选时,单击登录按钮,协议文字的动画效果。

setVendorPrivacyPrefix

String

设置运营商协议前缀符号,只能设置一个字符<、(、《、【、『、[、(中的一个。

setVendorPrivacySuffix

String

设置运营商协议后缀符号,只能设置一个字符>、)、》、】、』、]、)中的一个。

setProtocolLayoutGravity

int

设置隐私栏的布局对齐方式。支持以下三种对齐方式:

  • Gravity.CENTER_HORIZONTAL:水平居中

  • Gravity.LEFT:左对齐

  • Gravity.RIGHT:右对齐

说明

该参数控制了整个隐私栏(包含check box)在其父布局中的对齐方式,而setProtocolGravity控制的是隐私协议文字内容在文本框中的对齐方式。

setPrivacyOffsetX

int

设置隐私栏X轴偏移量(单位:dp)。

setLogBtnToastHidden

boolean

设置check box未勾选时,单击登录按钮toast是否显示。

setPrivacyTextSizeDp

int

设置隐私条款文字大小(单位:dp,字体大小不随系统变化)。

setUncheckedImgDrawable

Drawable

设置复选框未选中时的图片。

setCheckedImgDrawable

Drawable

设置复选框选中时的图片。

配置切换控件方式

方法

类型

说明

setSwitchAccHidden

boolean

设置切换登录方式控件是否隐藏。

setSwitchAccText

String

设置切换登录方式控件的文本内容。

setSwitchAccTextColor

int

设置切换登录方式控件的文字颜色。

setSwitchOffsetY

int

设置切换登录方式控件距离导航栏顶部的位移(单位:dp)。

setSwitchOffsetY_B

int

设置切换登录方式控件距离底部的位移(单位:dp)。

setSwitchAccTextSizeDp

int

设置切换登录方式控件的文字大小(单位:dp,字体大小不随系统变化)。

useSwitchFontAndPath

boolean,String

设置切换按钮文本是否使用自定义字体。自定义字体名称,包含字体格式,如xxx.ttf,文件需放置在assets下。

  • true:使用自定义字体。

  • false:不使用自定义字体。

setSwitchTypeface

Typeface

设置切换按钮文本使用系统字体。

参数包含:Typeface.SANS_SERIF、Typeface.SERIF、Typeface.MONOSPACE。

配置页面相关函数

方法

类型

说明

setAuthPageActIn

String

设置授权页唤起动画。

setAuthPageActOut

String

设置授权页退出动画。

setPageBackgroundPath

String

设置授权页背景图。

说明

drawable资源的目录,不需要加后缀,如图片在drawable中的存放目录是res/drawable-xxhdpi/loading.png,则传入参数为"loading",setPageBackgroundPath("loading")。

setDialogWidth

int

设置授权页宽度(单位:dp)。

setDialogHeight

int

设置授权页高度(单位:dp)。

setDiaLogoffsetX

int

设置授权页X轴偏移(单位:dp)。

setDiaLogoffsetY

int

设置授权页Y轴偏移(单位:dp)。

setDialogBottom

boolean

设置授权页是否居于底部。

setPageBackgroundDrawable

Drawable

设置授权页背景图。

setProtocolAction

String

自定义协议页跳转Action。

setPackageName

String

配置自定义协议页跳转Action必须配置这个属性,值为App的包名。

setWebCacheMode

int

设置内置协议展示页webview缓存模式。

二次隐私协议弹窗页面

配置二次隐私协议弹窗页面

方法

参数类型

说明

setPrivacyAlertIsNeedShow

boolean

设置二次隐私协议弹窗是否显示。取值:

  • true:表示显示。

  • false(默认值):表示不显示。

setPrivacyAlertIsNeedAutoLogin

boolean

设置二次隐私协议弹窗单击同意后是否自动登录。取值:

  • true(默认值):表示需要自动登录。

  • false:表示不需要自动登录。

setPrivacyAlertMaskIsNeedShow

boolean

设置二次隐私协议弹窗背景蒙层是否显示。

  • true(默认值):表示显示。

  • false:表示不显示。

setPrivacyAlertMaskAlpha

float

设置二次隐私协议弹窗蒙层透明度。默认值0.3。

说明

取值范围0.3~1.0。

setPrivacyAlertAlpha

float

设置二次隐私协议弹窗透明度。默认值1.0。

说明

取值范围0.3~1.0。

setPrivacyAlertBackgroundColor

int

设置二次隐私协议弹窗背景色(同意并继续按钮区域)。

setPrivacyAlertEntryAnimation

String

设置二次隐私协议弹窗开始动画。

setPrivacyAlertExitAnimation

String

设置二次隐私协议弹窗退出动画。

setPrivacyAlertCornerRadiusArray

int

设置二次隐私协议弹窗的四个圆角值。

说明

顺序为左上、右上、右下、左下,需要填充4个值,不足4个值则无效,如果值小于等于0则为直角。

setPrivacyAlertAlignment

int

设置屏幕居中、居上、居下、居左、居右,默认居中显示。

setPrivacyAlertWidth

int

设置弹窗宽度。

setPrivacyAlertHeight

int

设置弹窗高度。

setPrivacyAlertOffsetX

int

设置弹窗水平偏移量。(单位:dp)

setPrivacyAlertOffsetY

int

设置弹窗竖直偏移量。(单位:dp)

setPrivacyAlertTitleBackgroundColor

int

设置二次隐私协议弹窗标题背景颜色。

setPrivacyAlertTitleAlignment

int

设置二次隐私协议弹窗标题支持居中、居左,默认居中显示。

setPrivacyAlertTitleOffsetX

int

设置标题文字水平偏移量。(单位:dp)

setPrivacyAlertTitleOffsetY

int

设置标题文字竖直偏移量。(单位:dp)

setPrivacyAlertTitleContent

String

设置标题文本。

setPrivacyAlertTitleTextSize

int

设置标题文字大小,默认值18 sp。

setPrivacyAlertTitleColor

int

设置标题文字颜色。

setPrivacyAlertContentBackgroundColor

int

设置协议内容背景颜色。

setPrivacyAlertContentTextSize

int

设置服务协议文字大小,默认值16 sp。

setPrivacyAlertContentAlignment

int

设置二次隐私协议弹窗协议文案支持居中、居左,默认居左显示。

setPrivacyAlertContentColor

int

设置服务协议文字颜色。

setPrivacyAlertContentBaseColor

int

设置服务协议非协议文字颜色。

setPrivacyAlertContentHorizontalMargin

int

设置服务协议左右两侧间距。

setPrivacyAlertContentVerticalMargin

int

设置服务协议上下间距。

setPrivacyAlertBtnBackgroundImgPath

String

设置二次弹窗背景图片路径。

setPrivacyAlertBtnBackgroundImgDrawable

Drawable

设置二次弹窗确认按钮背景。

setPrivacyAlertBtnTextColor

int

设置二次弹窗确认按钮文字颜色。

setPrivacyAlertBtnTextColorPath

String

设置二次弹窗确认按钮文字颜色路径。

setPrivacyAlertBtnTextSize

int

设置二次弹窗确认按钮文字大小,默认值18 sp。

setPrivacyAlertBtnWidth

int

设置二次弹窗确认按钮宽度。(单位:dp)

setPrivacyAlertBtnHeigth

int

设置二次弹窗确认按钮高度。(单位:dp)

setPrivacyAlertCloseBtnShow

boolean

设置右上角的关闭按钮是否显示。

  • true(默认值):显示关闭按钮。

  • false:不显示关闭按钮。

setPrivacyAlertCloseImagPath

String

设置关闭按钮图片路径。

setPrivacyAlertCloseScaleType

ImageView.ScaleType

设置关闭按钮缩放类型。

setPrivacyAlertCloseImagDrawable

Drawable

设置关闭按钮图片。

setPrivacyAlertCloseImgWidth

int

设置关闭按钮宽度。(单位:dp)

setPrivacyAlertCloseImgHeight

int

设置关闭按钮高度。(单位:dp)

privacyAlertBtnGrivaty

int[]

设置确认按钮布局方式。

privacyAlertBtnContent

int

设置确认按钮文本。

privacyAlertBtnHorizontalMargin

int

设置确认按钮的横向边距。

privacyAlertBtnVerticalMargin

int

设置确认按钮的纵向边距。

setTapPrivacyAlertMaskCloseAlert

boolean

设置二次隐私协议弹窗点击背景蒙层是否关闭弹窗。

  • true(默认值):表示关闭。

  • false:表示不关闭。

setPrivacyAlertTitleTypeface

Typeface

设置二次弹窗title文本使用系统字体。

参数包含:Typeface.SANS_SERIF、Typeface.SERIF、Typeface.MONOSPACE。

usePrivacyAlertContentFontAndPath

boolean,String

设置二次弹窗协议文本是否使用自定义字体。自定义字体名称,包含字体格式,如xxx.ttf,文件需放置在assets下。

  • true:使用自定义字体。

  • false:不使用自定义字体。

setPrivacyAlertContentTypeface

Typeface

设置二次弹窗协议文本使用系统字体。

参数包含:Typeface.SANS_SERIF、Typeface.SERIF、Typeface.MONOSPACE。

setPrivacyAlertBtnTypeface

Typeface

设置二次弹窗确认按钮文本使用系统字体。

参数包含:Typeface.SANS_SERIF、Typeface.SERIF、Typeface.MONOSPACE。

setPrivacyAlertBefore

String

二次弹窗协议前缀。

setPrivacyAlertEnd

String

二次弹窗协议后缀。

setPrivacyAlertOneColor

int

设置授权页协议1文本颜色。

setPrivacyAlertTwoColor

int

设置授权页协议2文本颜色。

setPrivacyAlertThreeColor

int

设置授权页协议3文本颜色。

setPrivacyAlertOperatorColor

int

设置授权页运营商协议文本颜色。

  • 本页导读 (1)
文档反馈