文档

Android客户端接入

更新时间:

本文为您介绍Android客户端一键登录的集成方法及接口的功能示例。

说明

在使用过程中如有疑问,可以提交工单联系阿里云技术工程师处理。

接入步骤

下载SDK

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

创建认证方案

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

导入项目

  1. 设置minSdkVersion和compileSdkVersion版本。

    minSdkVersion:号码认证SDK最低依赖版本为21,创建新项目时minSdkVersion不能低于21。

    compileSdkVersion:号码认证SDK最低依赖版本为30,创建新项目时compileSdkVersion不能低于30。

    lQLPJwRrQmTx-IjNAU_NAf-wjoE4EAEBBikEuGvmAQCeAA_511_335.png

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

    在使用号码认证功能的module中引入相关SDK,将3个aar全部导入module libs文件夹。

    29

    • authsdk是号码认证主aar,实现一键登录及本机号码校验功能;

    • logger组件是authsdk使用的日志组件必须引入依赖;

    • main组件是authsdk使用的基础功能组件必须引入依赖;

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

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

    30

  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清单文件中添加权限。

    必要权限(aar中已申请,用户无需单独配置)

    <uses-permission android:name="android.permission.INTERNET" /> <!-- 网络访问 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 检查wifi网络状态 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 检查网络状态 -->
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- 允许修改网络状态 -->

    非必要权限(不配置此权限,不影响使用一键登录功能)

    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!--允许访问电话状态-->
  2. 添加Activity声明。

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

      <!--重点关注!!!!!!!-->
            <!--如果不需要使用窗口模式,建议不要使用authsdk_activity_dialog主题,会出现异常动画-->
            <!--如果需要使用authsdk_activity_dialog主题,则screenOrientation一定不能指定明确的方向,
            比如portrait、sensorPortrait,在8.0的系统上不允许窗口模式指定orientation,会发生crash,需要指定为behind,
            然后在授权页的前一个页面指定具体的orientation-->
            <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" /> //仅在弹窗模式下配置,全屏模式无需配置
            //如使用自定义协议页跳转协议(即setProtocolAction)则不需注册该界面
            <activity
                android:name="com.mobile.auth.gatewayauth.activity.AuthWebVeiwActivity"
                android:configChanges="orientation|keyboardHidden|screenSize"
                android:exported="false"
                android:launchMode="singleTop"
                android:screenOrientation="behind" />
             //如果需要使用二次弹窗功能则添加该注册
              <activity android:configChanges="orientation|keyboardHidden|screenSize" 
                        android:exported="false" android:launchMode="singleTop" 
         				android:name="com.mobile.auth.gatewayauth.PrivacyDialogActivity" android:screenOrientation="behind" android:theme="@style/authsdk_activity_dialog"/>
    

交互流程详解

完整的功能交互流程请参见一键登录交互流程

SDK方法说明

获取认证实例

/**
 *  获取该类的单例实例对象
 *  @param context  Android上下文建议使用applicationcontext
 *  @param tokenListener 需要实现的获取Token回调
 *  @return  单例实例对象
 */
public static PhoneNumberAuthHelper getInstance(Context context, TokenResultListener tokenResultListener)

使用示例

TokenResultListener mTokenResultListener = new TokenResultListener() {
    @Override
    public void onTokenSuccess(String s) {
        //此处可进行token获取成功及授权页唤起成功的业务处理
    }

    @Override
    public void onTokenFailed(String s) {
        //此处可进行token获取失败及退出授权页的业务处理
    }
};
PhoneNumberAuthHelper mPhoneNumberAuthHelper = PhoneNumberAuthHelper.getInstance(this, mTokenResultListener);

必调方法:设置SDK密钥(setAuthSDKInfo

/**
 *  初始化SDK调用参数,App生命周期内调用一次
 *  @param 在号码认证控制台的号码认证方案管理页,在对应的方案名称操作列单击密钥后,再单击复制密钥即可获取。
 */
public void setAuthSDKInfo(String secretInfo)

使用示例

mPhoneNumberAuthHelper.setAuthSDKInfo(secretInfo);

必调方法:设置获取Token回调

在一键登录前调用,用于监控一键登录结果。

 /**
  * 设置获取Token回调,修改getInstance传入的回调实现
  * 接口回调其他事件:600001(授权页唤起成功)、600002(授权页唤起失败)、600000(成功获取Token)、600011(获取Token失败)、
  * 600015(获取Token超时)、600013(运营商维护升级,该功能不可用)、600014(运营商维护升级,该功能已达最大调用次数).....
  * @param tokenListener 回调实现
  */
 public void setAuthListener(TokenResultListener tokenListener) 

使用示例

 mTokenResultListener = new TokenResultListener() {
            @Override
            public void onTokenSuccess(String s) {
                //此处可进行token获取成功及授权页唤起成功的业务处理
            }

            @Override
            public void onTokenFailed(String s) {
                //此处可进行token获取失败及退出授权页的业务处理
            }
        };
        mPhoneNumberAuthHelper.setAuthListener(mTokenResultListener);

必调方法:修改授权页主题

该接口需在getLoginToken接口之前调用,具体页面属性请参考UI接口设置。

   /**
     * 修改授权页面主题,开发者可以通过 此方法修改授权页面主题,需在 getLoginToken接口之前调用
     *
     * @param authUIConfig 登录授权页UI自定义配置
     */
    @AuthNumber
    public void setAuthUIConfig(AuthUIConfig authUIConfig)

使用示例

    mAuthHelper.setAuthUIConfig(new AuthUIConfig.Builder()
                .setAppPrivacyOne("《自定义隐私协议》", "https://www.baidu.com")
                .setAppPrivacyTwo("《自定义隐私协议》2","https://baijiahao.baidu.com/s?id=1693920988135022454&wfr=spider&for=pc")
                .setAppPrivacyThree("《自定义隐私协议》3","http://www.npc.gov.cn/zgrdw/npc/cwhhy/13jcwh/node_35014.htm")
                .setAppPrivacyColor(Color.GRAY, Color.parseColor("#002E00"))
                .setPrivacyConectTexts(new String[]{",","","和"})
                .setPrivacyOperatorIndex(2)
                .setPrivacyState(false)
                //.setCheckboxHidden(true)
                .setNavHidden(true)
                .setSwitchAccHidden(true)
                .setNavReturnHidden(true)
                .setDialogBottom(false)
                //自定义协议页跳转协议,需要在清单文件配置自定义intent-filter,不需要自定义协议页,则请不要配置ProtocolAction
                .setProtocolAction("com.aliqin.mytel.protocolWeb")
                .setPackageName(mPackageName)
                .setNavColor(Color.TRANSPARENT)
                .setWebNavColor(Color.BLUE)

                .setLogoOffsetY(0)
                .setLogoWidth(42)
                .setLogoHeight(42)
                .setLogoImgPath("mytel_app_launcher")

                .setNumFieldOffsetY(unit + 10)
                //设置字体大小,以Dp为单位,不同于Sp,不会随着系统字体变化而变化
                .setNumberSizeDp(17)

                .setLogBtnWidth(dialogWidth - 30)
                .setLogBtnMarginLeftAndRight(15)
                .setLogBtnHeight(logBtnHeight)
                .setLogBtnTextSizeDp(16)
                .setLogBtnBackgroundPath("login_btn_bg")

                .setLogBtnOffsetY(unit * 4)
                .setSloganText("为了您的账号安全,请先绑定手机号")
                .setSloganOffsetY(unit * 3)
                .setSloganTextSizeDp(11)

                .setPageBackgroundPath("dialog_page_background")

                .setAuthPageActIn("in_activity", "out_activity")
                .setAuthPageActOut("in_activity", "out_activity")
                .setVendorPrivacyPrefix("《")
                .setVendorPrivacySuffix("》")
                .setDialogWidth(dialogWidth)
                .setDialogHeight(dialogHeight)
                .setScreenOrientation(authPageOrientation)
                .create());

必调方法:一键登录获取Token(getLoginToken)

/**
     * 获取登录Token 调起一键登录授权页面,在用户授权后获取一键登录的Token
     * @param context 上下文,建议使用activity(设置拉起动画时必须使用activity才会生效)
     * @param totalTimeout 超时时间 单位ms
     */
public void getLoginToken(final Context context, final int totalTimeout)

使用示例

mPhoneNumberAuthHelper.getLoginToken(this, timeout);

必调方法:注销登录页面(quitLoginPage)

/**
 * 退出授权认证页
 */
public void quitLoginPage()

使用示例

mPhoneNumberAuthHelper.quitLoginPage();

选调方法:授权页控件点击事件监控

    /**
     * 设置UI控件点击事件回调
     *
     * @param uiClickListener 回调实现
     */
    public void setUIClickListener(AuthUIControlClickListener uiClickListener) 

使用示例

   mAuthHelper.setUIClickListener(new AuthUIControlClickListener() {
            @Override
            public void onClick(String code, Context context, String jsonString) {
                //此处进行授权页各控件点击事件监控,根据不同code区分控件

            }
        });

选调方法:加速拉起授权页(accelerateLoginPage)

/**
 * 加速授权页唤起
 *
 * @param overdueTimeMills 接口超时时间,单位:ms
 * @param listener         预取号回调
 */
public void accelerateLoginPage(final int overdueTimeMills, final PreLoginResultListener listener) 

使用示例

mPhoneNumberAuthHelper.accelerateLoginPage(timeout, new PreLoginResultListener() {
    @Override
    public void onTokenSuccess(String s) {
        //加速成功业务逻辑处理
    }

    @Override
    public void onTokenFailed(String s, String s1) {
        //加速失败业务逻辑处理
    }
});

其他接口说明

选调方法:获取版本号

/**
 * 返回SDK版本号
 *
 * @return versionCode SDK版本号
 */
public static String getVersion()

使用示例

String version = PhoneNumberAuthHelper.getVersion();

选调方法:环境检查

/**
     * SDK环境检查函数,检查终端是否支持号码认证,带返回code的
     *
     * @see PhoneNumberAuthHelper#SERVICE_TYPE_AUTH
     * @see PhoneNumberAuthHelper#SERVICE_TYPE_LOGIN
     */
public void checkEnvAvailable(final @IntRange(from = 1, to = 2) int type)

使用示例

mPhoneNumberAuthHelper.checkEnvAvailable(PhoneNumberAuthHelper.SERVICE_TYPE_AUTH);

选调方法:设置授权页协议框是否勾选

/**
* 设置授权页协议勾选框选中状态
*
* @param paramBoolean勾选框选中状态
*/
public void setProtocolChecked(boolean ischeck)

使用示例

mPhoneNumberAuthHelper.setProtocolChecked(true);

选调方法:结束授权页loading动画

    /**
     * 结束授权页loading dialog
     */
    public void hideLoginLoading()

使用示例

mPhoneNumberAuthHelper.hideLoginLoading();

选调方法:授权页是否扩大协议按钮选择范围至我已阅读并同意

    /**
     *授权页是否扩大协议按钮选择范围至我已阅读并同意 
     */
    public void expandAuthPageCheckedScope(boolean expand)

使用示例

mPhoneNumberAuthHelper.expandAuthPageCheckedScope(true);

选调方法:获取授权页协议勾选框选中状态

/**
 * 获取授权页协议勾选框选中状态
 */
public boolean queryCheckBoxIsChecked()

使用示例

boolean checked = mPhoneNumberAuthHelper.queryCheckBoxIsChecked();

选调方法:用户控制返回键及左上角返回按钮效果

调用此方法后用户在setUIClickListener方法中收到ResultCode.CODE_ERROR_USER_CANCEL回调后控制授权页关闭逻辑。

    /**
     * 授权页返回由用户控制
     */
    public void userControlAuthPageCancel()

使用示例

 mPhoneNumberAuthHelper.userControlAuthPageCancel();

选调方法:用户禁止使用utdid

调用该方法后移除相关utdid的使用。

   /**
     * 禁止使用utdid
     */
    public void prohibitUseUtdid()

使用示例

mPhoneNumberAuthHelper.prohibitUseUtdid();

选调方法:授权页是否跟随系统深色模式

   /**
     * 授权页界面是否跟随系统深色模式,默认true跟随
     */
    public void setAuthPageUseDayLight(boolean authPageUseDayLight)

使用示例

mPhoneNumberAuthHelper.setAuthPageUseDayLight(true);

选调方法:授权页物理返回键禁用

   /**
     * 控制授权页物理返回键是否可用 
     */
    public void closeAuthPageReturnBack(boolean close)

使用示例

mPhoneNumberAuthHelper.closeAuthPageReturnBack(true);

选调方法:横屏水滴屏全屏适配

   /**
     *授权页刘海屏水滴屏药丸屏横屏时是否全屏
     */
    public void keepAuthPageLandscapeFullSreen(boolean fullScreen) 

使用示例

mPhoneNumberAuthHelper.keepAuthPageLandscapeFullSreen(true);

选调方法:删除预取号码信息

   /**
     * 删除预取号码信息
     */
    @AuthNumber
    public void clearPreInfo()

使用示例

mPhoneNumberAuthHelper.clearPreInfo();

选调方法:获取上网卡运营商

  /**
     * 返回默认上网卡运营商
     *
     * @return CMCC(中国移动)、CUCC(中国联通)、CTCC(中国电信)
     */
    public String getCurrentCarrierName()

使用示例

String carrierName=mPhoneNumberAuthHelper.getCurrentCarrierName();

选调方法:动态添加控件

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

使用示例

 mAuthHelper.addAuthRegistViewConfig(""/**view ID */, new AuthRegisterViewConfig.Builder()
                  //此处需改为用户自定义添加的view
                 .setView(null)
                 //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_BODY)
                .setCustomInterface(new CustomInterface() {
                    @Override
                    public void onClick(Context context) {
                        //此处可进行用户自定义view点击事件业务逻辑处理
                    }
                }).build());

选调方法:移除所有动态添加的控件

在调用addAuthRegistViewConfig之前调用removeAuthRegisterViewConfig先移除所有动态添加的控件。

/**
 * 移除所有动态添加的控件
 */
public void removeAuthRegisterViewConfig()

使用示例

 mAuthHelper.removeAuthRegisterViewConfig();

选调方法:添加自定义布局

   /**
     * 添加自定义布局
     *
     * @param xmlConfig
     */
    @AuthNumber
    public void addAuthRegisterXmlConfig(AuthRegisterXmlConfig xmlConfig) 

使用示例

 mAuthHelper.addAuthRegisterXmlConfig(new AuthRegisterXmlConfig.Builder()
                .setLayout(//此处需改为用户自定义的布局ID, new AbstractPnsViewDelegate() {
                    @Override
                    public void onViewCreated(View view) {
                        //此处可进行用户自定义布局业务逻辑处理
                    }
                })
                .build());

选调方法:移除所有添加的自定义布局

在调用addAuthRegisterXmlConfig之前调用removeAuthRegisterXmlConfig先移除所有添加的自定义View。

/**
 * 移除所有的自定义布局
 */
@AuthNumber
public void removeAuthRegisterXmlConfig()

使用示例

mAuthHelper.removeAuthRegisterXmlConfig();

二次弹窗相关

选调方法:添加二次弹窗自定义布局

在调用addPrivacyRegisterXmlConfig前,调用removePrivacyRegisterXmlConfig先移除所有添加的自定义View。

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

选调方法:二次弹窗取消事件

/**
 * 二次弹窗取消事件
 *
 * @param
 */
@AuthNumber
public void quitPrivacyPage() 

选调方法:移除二次弹窗所有自定义布局

/**
 * 移除二次弹窗所有的自定义布局
 */
@AuthNumber
public void removePrivacyRegisterXmlConfig()

使用示例

mAuthHelper.removePrivacyRegisterXmlConfig();
mAuthHelper.addPrivacyRegisterXmlConfig(new AuthRegisterXmlConfig.Builder()
            //此处需改为用户自定义的布局ID
            .setLayout(null, new AbstractPnsViewDelegate() {
            @Override
            public void onViewCreated(View view) {
                //此处可进行用户自定义布局业务逻辑处理
            }
        })
        .build());

选调方法:二次弹窗动态添加控件

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

使用示例

 mAuthHelper.addPrivacyAuthRegistViewConfig(""/**view ID */, new AuthRegisterViewConfig.Builder()
                  //此处需改为用户自定义添加的view
                 .setView(null)
                 //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_BODY)
                .setCustomInterface(new CustomInterface() {
                    @Override
                    public void onClick(Context context) {
                        //此处可进行用户自定义view点击事件业务逻辑处理
                    }
                }).build());

选调方法:移除所有动态添加的控件

在调用addPrivacyAuthRegistViewConfig之前调用removePrivacyAuthRegisterViewConfig先移除所有动态添加的控件。

/**
 * 移除所有动态添加的控件
 */
public void removePrivacyAuthRegisterViewConfig()

使用示例

 mAuthHelper.removePrivacyAuthRegisterViewConfig();

授权页设置ActivityResult回调

   /**
     * 设置ActivityResult回调
     *
     * @param resultListener 回调实现
     */
    public void setActivityResultListener(ActivityResultListener resultListener) 

使用示例

 mPhoneNumberAuthHelper.setActivityResultListener(new ActivityResultListener() {
            @Override
            public void onActivityResult(int requestCode, int resultCode, Intent data) {
               //此处可进行用户业务逻辑处理 
            }
        });

获取日志埋点相关控制对象

获取到该对象后可以进行相关的日志设置。

    /**  获取日志埋点相关控制对象
     * @return
     * @see PnsReporter
     */
    public PnsReporter getReporter()

使用示例

PnsReporter reporter=mPhoneNumberAuthHelper.getReporter()

日志埋点设置

选调方法:控制台日志输出开关

/**
 * 设置控制台日志开关
 *
 */
void setLoggerEnable(boolean isEnable)

使用示例

mPhoneNumberAuthHelper.getReporter().setLoggerEnable(true)

选调方法:设置日志及埋点上传开关

/**
 * 设置上传开关
 *
 * @param isEnable added in {@link Constant#API_LEVEL_2}
 */
void setUploadEnable(boolean isEnable)

使用示例

mPhoneNumberAuthHelper.getReporter().setUploadEnable(true)

选调方法:注册一个日志处理器

SDK内部产生的日志、埋点可以通过该处理器上传到您的平台。

/**
 * 注册一个日志处理器,SDK内部产生的日志、埋点可以通过该处理器上传到自己的平台。
 * 与{@link #setUploader(PnsUploader)}不同的是,该处理器不仅可以自己做上传处理,也可以做本地缓存管理
 * @param handler
 */
void setLoggerHandler(PnsLoggerHandler handler)

使用示例

 authHelper.getReporter().setLoggerHandler(new PnsLoggerHandler() {
            @Override
            public void monitor(String msg) {
                Log.e("xxffg","Monitor:"+msg);
            }

            @Override
            public void verbose(String msg) {
                Log.e("xxffg","Verbose:"+msg);
            }

            @Override
            public void info(String msg) {
                Log.e("xxffg","Info:"+msg);
            }

            @Override
            public void debug(String msg) {
                Log.e("xxffg","Debug:"+msg);
            }

            @Override
            public void warning(String msg) {
                Log.e("xxffg","Warning:"+msg);
            }

            @Override
            public void error(String msg) {
                Log.e("xxffg","Error:"+msg);
            }
        });

UI页面接口说明

全屏授权页面设计规范

编组..png

状态栏

  • setStatusBarColor: 设置状态栏颜色(需5.0以上系统版本)。

  • setLightColor: 设置状态栏文字颜色(系统版本6.0以上可设置黑色、白色,true为黑色)。

  • setStatusBarHidden: 设置状态栏是否隐藏。

  • setStatusBarUIFlag: 设置状态栏UI属性,View.SYSTEM_UI_FLAG_LOW_PROFILE, View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN。

  • setWebViewStatusBarColor: 设置协议页状态栏颜色(系统版本5.0以上可设置)不设置则与授权页设置一样)

导航栏

  • setNavColor: 设置导航栏主题色。

  • setNavText: 设置导航栏标题文字内容。

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

  • setNavTextSize: 设置导航栏标题文字大小。

  • setNavReturnImgPath: 设置导航栏返回键图片。

  • setNavReturnHidden: 设置导航栏返回按钮是否隐藏。

  • setNavHidden: 设置导航栏是否隐藏。

  • navReturnImgWidth: 设置导航栏返回键图片宽度,单位dp。

  • navReturnImgHeight: 设置导航栏返回键图片高度,单位dp。

  • setNavReturnHidden: 隐藏导航栏返回按钮。

  • setNavReturnScaleType: 设置返回按钮图片的缩放模式。

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

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

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

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

  • useNavFontAndPath:设置导航栏文本使用自定义字体。

  • setNavTypeface:设置导航栏文本使用系统字体。

Logo区

  • setLogoImgPath: 设置logo图片。

  • setLogoHidden: 设置logo是否隐藏。

  • setLogoWidth: 设置logo宽度。

  • setLogoHeight: 设置logo高度。

  • setLogoOffsetY: 设置logo控件相对导航栏顶部的位移,单位dp。

  • setLogoOffsetY_B: 设置logo控件相对底部的位移,单位dp。

  • setLogoHidden: 设置logo是否隐藏。

  • setLogoScaleType: 设置Logo图片缩放模式。

Slogan

  • setSloganText: 设置slogan文字内容。

  • setSloganTextColor: 设置slogan文字颜色。

  • setSloganTextSize: 设置slogan文字大小。

  • setSloganOffsetY: 设置slogan相对导航栏顶部的位移,单位dp。

  • setSloganOffsetY_B:设置slogan相对底部的位移,单位dp。

  • useSloganFontAndPath:设置slogan文本使用自定义字体。

  • setSloganTypeface:设置slogan文本使用系统字体。

掩码栏

  • setNumberColor: 设置掩码字体颜色。

  • setNumberSize: 设置掩码字体大小。

  • setNumFieldOffsetY: 设置掩码栏控件相对导航栏顶部的位移,单位dp。

  • setNumFieldOffsetY_B: 设置掩码栏控件相对底部的位移,单位dp。

  • setNumberFieldOffsetX: 设置号码栏相对于默认位置的X轴位置,单位dp。

  • setNumberLayoutGravity: 设置手机号掩码的布局对齐方式,只支持Gravity.CENTER_HORIZONTAL, Gravity.LEFT,Gravity.RIGHT三种对齐方式。

  • useNumberFontAndPath:设置掩码文本使用自定义字体。

  • setNumberTypeface:设置掩码文本使用系统字体。

编组..png

登录按钮

  • setLogBtnText: 设置登录按钮文字(文字必须包含“登录”或“注册”)。

  • setLogBtnTextColor: 设置登录按钮文字颜色。

  • setLogBtnTextSize: 设置登录按钮文字大小。

  • setLogBtnWidth: 设置登录按钮宽度,单位dp。

  • setLogBtnHeight: 设置登录按钮高度,单位dp。

  • setLogBtnMarginLeftAndRight: 设置登录按钮相对于屏幕左右边缘的边距。

  • setLogBtnBackgroundPath: 设置登录按钮背景图片路径。

  • setLogBtnOffsetX: 设置登录按钮X轴偏移量,如果设置了setLogBtnMarginLeftAndRight,并且布局对齐方式为左对齐或者右对齐,则会在margin的基础上再增加offsetX的偏移量,如果是居中对齐,则会在居中的基础上再做offsetX的偏移。

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

  • setLogBtnOffsetY_B: 设置登录按钮相对底部的位移,单位dp。

  • setLoadingImgPath: 设置登录loading dialog背景图片路径。

  • setLogBtnLayoutGravity: 设置登录按钮布局对齐方式,只支持Gravity.CENTER_HORIZONTAL、Gravity.LEFT,Gravity.RIGHT三种对齐方式。

  • useLogBtnFontAndPath:设置登录按钮文本使用自定义字体。

  • setLogBtnTypeface:设置登录按钮文本使用系统字体。

切换到其他方式

  • setSwitchAccHidden: 设置切换按钮点是否可见。

  • setSwitchAccText: 设置切换按钮文字内容。

  • setSwitchAccTextColor: 设置切换按钮文字颜色。

  • setSwitchAccTextSize: 设置切换按钮文字大小。

  • setSwitchOffsetY: 设置切换按钮相对导航栏顶部的位移,单位dp。

  • setSwitchOffsetY_B: 设置切换按钮相对底部的位移,单位dp。

  • useSwitchFontAndPath:设置切换按钮文本使用自定义字体。

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

自定义控件区(如其他方式登录)

您可以在除了协议、掩码、登录按钮之外的区域添加自定义控件。支持两种方式添加自定义控件

  1. addAuthRegisterViewConfig: 添加代码编写的自定义控件至登录授权页。

  2. addAuthRegisterXmlConfig: 添加有XML回执的自定义控件至登录授权页。

协议栏

  • setAppPrivacyOne: 自定义第一条隐私条款。

  • setAppPrivacyTwo: 自定义第二条隐私条款。

  • setAppPrivacyThree: 自定义第三条隐私条款。

  • setAppPrivacyColor: 设置隐私条款名称颜色(基础文字颜色,协议文字颜色)

  • setPrivacyOffsetY: 设置隐私条款相对导航栏顶部的位移,单位dp。

  • setPrivacyOffsetY_B: 设置隐私条款相对底部的位移,单位dp。

  • setPrivacyState: 设置隐私条款是否默认勾选。

  • setProtocolGravity: 设置隐私条款文字对齐方式,单位Gravity.xx。

  • setPrivacyTextSize: 设置隐私条款文字大小。

  • setPrivacyMargin: 设置隐私条款距离手机左右边缘的边距,单位dp。

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

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

  • setCheckboxHidden: 设置复选框是否隐藏。

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

  • setCheckedImgPath: 设置复选框选中时的图片。

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

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

  • setProtocolLayoutGravity: 设置隐私栏的布局对齐方式,该接口控制了整个隐私栏(包含checkbox)在其父布局中的对齐方式,而setProtocolGravity控制的是隐私协议文字内容在文本框中的对齐方式。

  • setPrivacyOffsetX: 设置隐私栏X轴偏移量,单位dp。

  • setLogBtnToastHidden: 设置checkbox未勾选时,点击登录按钮toast是否显示。

  • useProtocolFontAndPath:设置协议文本使用自定义字体。

  • setProtocolTypeface:设置协议文本使用系统字体。

  • setPrivacyOneColor:授权页协议1文本颜色。

  • setPrivacyTwoColor:授权页协议2文本颜色。

  • setPrivacyThreeColor:授权页协议3文本颜色。

  • setPrivacyOperatorColor:授权页运营商协议文本颜色。

  • setCheckBoxWidth:设置隐私协议栏复选框宽度(单位:dp)。

  • setCheckBoxHeight:设置隐私协议栏复选框高度(单位:dp)。

其他全屏页面属性

  • setAuthPageActIn: 设置授权页进场动画。

  • setAuthPageActOut: 设置授权页退出动画。

  • setScreenOrientation: 设置屏幕方向,取值为ActivityInfo中的屏幕方向常量值,比如ActivityInfo.SCREEN_ORIENTATION_LANDSCADE。

  • setPageBackgroundPath: 设置授权页背景图drawable资源的目录,不需要加后缀,比如图片在drawable中的存放目录是res/drawable-xxhdpi/loading.png,则传入参数为“loading”,setPageBackgroundPath("loading")。

弹窗授权页面设计规范

编组 2..png

其他弹窗页面属性

  • setAuthPageActIn: 设置授权页进场动画。

  • setAuthPageActOut: 设置授权页退出动画。

  • setScreenOrientation: 设置屏幕方向,取值为ActivityInfo中的屏幕方向常量值,比如ActivityInfo.SCREEN_ORIENTATION_LANDSCADE。

  • setPageBackgroundPath: 设置授权页背景图drawable资源的目录,不需要加后缀,比如图片在drawable中的存放目录是res/drawable-xxhdpi/loading.png,则传入参数为“loading”,setPageBackgroundPath("loading")。

  • setDialogWidth: 设置弹窗模式授权页宽度,单位dp,设置大于0即为弹窗模式。

  • setDialogHeight: 设置弹窗模式授权页高度,单位dp,设置大于0即为弹窗模式。

  • setDialogOffsetX: 设置弹窗模式授权页X轴偏移量,单位dp。

  • setDialogOffsetY: 设置弹窗模式授权页Y轴偏移,单位dp。

  • setTapAuthPageMaskClosePage:设置授权页弹窗模式,点击非弹窗区域关闭授权页。true,关闭。false,不关闭。

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

  • 蒙层设置:通过修改授权页的弹窗主题实现,默认为android:theme = "@styleantusdk_activity_dialog",可通过开发者自己实现的逻辑设定蒙层的样式。

代码示例

唤起授权页(竖屏全屏)示例

//1、创建PhoneNumberAuthHelper实例
String secretInfo="用户密钥";
TokenResultListener mCheckListener = new TokenResultListener() {
            @Override
            public void onTokenSuccess(String s) {
               //此处可进行初始化环境检测成功的业务处理
            }

            @Override
            public void onTokenFailed(String s) {
               //此处可进行初始化环境检测失败的业务处理
            }
        };
        mPhoneNumberAuthHelper = PhoneNumberAuthHelper.getInstance(this, mCheckListener);
        mPhoneNumberAuthHelper.getReporter().setLoggerEnable(true);
        mPhoneNumberAuthHelper.setAuthSDKInfo(secretInfo);
//2、检测环境
mPhoneNumberAuthHelper.checkEnvAvailable(PhoneNumberAuthHelper.SERVICE_TYPE_LOGIN);

//3.1、加速拉起一键登录页面  
//在不是一进app就需要登录的场景 建议调用此接口 加速拉起一键登录页面
//等到用户点击登录的时候 授权页可以秒拉
//预取号的成功与否不影响一键登录功能,所以不需要等待预取号的返回。
mPhoneNumberAuthHelper.accelerateLoginPage(timeout, new PreLoginResultListener() {
            @Override
            public void onTokenSuccess(String s) {
                //加速成功业务逻辑处理
            }

            @Override
            public void onTokenFailed(String s, String s1) {
                //加速失败业务逻辑处理
            }
        });

//3.2、添加授权页属性,调用获取登录Token接口,可以立马弹起授权页

mAuthHelper.setUIClickListener(new AuthUIControlClickListener() {
            @Override
            public void onClick(String code, Context context, String jsonString) {
            //此处进行授权页各控件点击事件监控,根据不同code区分控件
            }
        });
        mAuthHelper.removeAuthRegisterXmlConfig();
        mAuthHelper.removeAuthRegisterViewConfig();
        //添加自定义切换其他登录方式
        mAuthHelper.addAuthRegistViewConfig(""//view ID, new AuthRegisterViewConfig.Builder()
               //此处需改为用户自定义添加的view
                .setView(null)
                .setRootViewId(AuthRegisterViewConfig.RootViewId.ROOT_VIEW_ID_BODY)
                .setCustomInterface(new CustomInterface() {
                    @Override
                    public void onClick(Context context) {
                    //此处可进行用户自定义view点击事件业务逻辑处理  
                    }
                }).build());
        int authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;
        if (Build.VERSION.SDK_INT == 26) {
            authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_BEHIND;
        }
        updateScreenSize(authPageOrientation);
        mAuthHelper.setAuthUIConfig(new AuthUIConfig.Builder()
                .setAppPrivacyOne("《自定义隐私协议》", "https://test.h5.app.tbmao.com/user")
                .setAppPrivacyTwo("《百度》", "https://www.baidu.com")
                .setAppPrivacyColor(Color.GRAY, Color.parseColor("#002E00"))
                //隐藏默认切换其他登录方式
                .setSwitchAccHidden(true)
                //隐藏默认Toast
                .setLogBtnToastHidden(true)
                //沉浸式状态栏
                .setNavColor(Color.parseColor("#026ED2"))
                .setStatusBarColor(Color.parseColor("#026ED2"))
                .setWebViewStatusBarColor(Color.parseColor("#026ED2"))


                .setLightColor(true)
                .setBottomNavColor(Color.TRANSPARENT)
                .setWebNavTextSizeDp(20)
                //图片或者xml的传参方式为不包含后缀名的全称 需要文件需要放在drawable或drawable-xxx目录下 in_activity.xml, mytel_app_launcher.png
                .setAuthPageActIn("in_activity", "out_activity")
                .setAuthPageActOut("in_activity", "out_activity")
                .setProtocolShakePath("protocol_shake")
                .setVendorPrivacyPrefix("《")
                .setVendorPrivacySuffix("》")
                .setPageBackgroundPath("page_background_color")
                .setLogoImgPath("mytel_app_launcher")
                //一键登录按钮三种状态背景示例login_btn_bg.xml
                .setLogBtnBackgroundPath("login_btn_bg")
                .setScreenOrientation(authPageOrientation)
                .create());
//用户控制返回键及左上角返回按钮效果
mPhoneNumberAuthHelper.userControlAuthPageCancel();
//用户禁用utdid
mPhoneNumberAuthHelper.prohibitUseUtdid();
//授权页是否跟随系统深色模式
mPhoneNumberAuthHelper.setAuthPageUseDayLight(true);
//授权页物理返回键禁用
//mPhoneNumberAuthHelper.closeAuthPageReturnBack(true);
//横屏水滴屏全屏适配
mPhoneNumberAuthHelper.keepAuthPageLandscapeFullSreen(true);
//授权页扩大协议按钮选择范围至我已阅读并同意
//mPhoneNumberAuthHelper.expandAuthPageCheckedScope(true);
 mTokenResultListener = new TokenResultListener() {
            @Override
            public void onTokenSuccess(String s) {
            //此处可进行token获取成功及授权页唤起成功的业务处理
            }

            @Override
            public void onTokenFailed(String s) {
            //此处可进行token获取失败及退出授权页的业务处理
            }
        };
        mPhoneNumberAuthHelper.setAuthListener(mTokenResultListener);
        mPhoneNumberAuthHelper.getLoginToken(this, timeout);

唤起授权页(横屏全屏)示例

 mAuthHelper.setAuthUIConfig(new AuthUIConfig.Builder()
                .setAppPrivacyOne("《自定义隐私协议》", "https://www.baidu.com")
                .setAppPrivacyColor(Color.GRAY, Color.RED)
                .setSloganHidden(true)
                .setNavHidden(true)
                .setCheckedImgPath("checked")
                //设置字体大小,以Dp为单位,不同于Sp,不会随着系统字体变化而变化
                .setNumberSizeDp(35)
                .setUncheckedImgDrawable(mActivity.getResources().getDrawable(R.drawable.unchecked))
                .setStatusBarHidden(true)
                .setLogoOffsetY(unit)
                .setLogoImgPath("phone")
                .setLogoWidth(50)
                .setLogoHeight(50)
                .setNumFieldOffsetY(unit * 3)
                .setLogBtnOffsetY(unit * 5)
                .setLogBtnHeight(logBtnHeight)
                .setSwitchOffsetY(unit * 7)
                .setLogBtnMarginLeftAndRight((mScreenHeightDp - 339) / 2)
                .setPrivacyMargin(115)
                .setLogBtnWidth(339)
                .setAuthPageActIn("in_activity", "out_activity")
                .setAuthPageActOut("in_activity", "out_activity")
                .setProtocolShakePath("protocol_shake")
                .setVendorPrivacyPrefix("《")
                .setVendorPrivacySuffix("》")
                .setPageBackgroundPath("page_background_color")
                .setLogBtnBackgroundPath("login_btn_bg")
                //设置屏幕方向
                .setScreenOrientation(authPageOrientation)
                .create());

唤起授权页(竖屏弹窗)示例

  int dialogWidth = (int) (mScreenWidthDp * 0.8f);
  int dialogHeight = (int) (mScreenHeightDp * 0.65f) - 50;
mAuthHelper.setAuthUIConfig(new AuthUIConfig.Builder()
                .setAppPrivacyOne("《自定义隐私协议》", "https://www.baidu.com")
                .setAppPrivacyTwo("《自定义隐私协议》2","https://baijiahao.baidu.com/s?id=1693920988135022454&wfr=spider&for=pc")
                .setAppPrivacyThree("《自定义隐私协议》3","http://www.npc.gov.cn/zgrdw/npc/cwhhy/13jcwh/node_35014.htm")
                .setAppPrivacyColor(Color.GRAY, Color.parseColor("#002E00"))
                .setPrivacyConectTexts(new String[]{",","","和"})
                .setPrivacyOperatorIndex(2)
                .setPrivacyState(false)
                //.setCheckboxHidden(true)
                .setNavHidden(true)
                .setSwitchAccHidden(true)
                .setNavReturnHidden(true)
                .setDialogBottom(false)
                //自定义协议页跳转协议,需要在清单文件配置自定义intent-filter,不需要自定义协议页,则请不要配置ProtocolAction
                .setProtocolAction("com.aliqin.mytel.protocolWeb")
                .setPackageName(mPackageName)
                .setNavColor(Color.TRANSPARENT)
                .setWebNavColor(Color.BLUE)

                .setLogoOffsetY(0)
                .setLogoWidth(42)
                .setLogoHeight(42)
                .setLogoImgPath("mytel_app_launcher")

                .setNumFieldOffsetY(unit + 10)
                //设置字体大小,以Dp为单位,不同于Sp,不会随着系统字体变化而变化
                .setNumberSizeDp(17)

                .setLogBtnWidth(dialogWidth - 30)
                .setLogBtnMarginLeftAndRight(15)
                .setLogBtnHeight(logBtnHeight)
                .setLogBtnTextSizeDp(16)
                .setLogBtnBackgroundPath("login_btn_bg")

                .setLogBtnOffsetY(unit * 4)
                .setSloganText("为了您的账号安全,请先绑定手机号")
                .setSloganOffsetY(unit * 3)
                .setSloganTextSizeDp(11)

                .setPageBackgroundPath("dialog_page_background")

                .setAuthPageActIn("in_activity", "out_activity")
                .setAuthPageActOut("in_activity", "out_activity")
                .setVendorPrivacyPrefix("《")
                .setVendorPrivacySuffix("》")
                .setDialogWidth(dialogWidth)
                .setDialogHeight(dialogHeight)
                .setScreenOrientation(authPageOrientation)
                .create());

全屏模式下二次弹窗示例

 mAuthHelper.setAuthUIConfig(new AuthUIConfig.Builder()
                .setAppPrivacyOne("《自定义隐私协议》", "https://test.h5.app.tbmao.com/user")
                .setAppPrivacyTwo("《百度》", "https://www.baidu.com")
                .setAppPrivacyColor(Color.GRAY, Color.parseColor("#002E00"))
                //隐藏默认切换其他登录方式
                .setSwitchAccHidden(true)
                //隐藏默认Toast
                .setLogBtnToastHidden(true)
                //沉浸式状态栏
                .setNavColor(Color.parseColor("#026ED2"))
                .setStatusBarColor(Color.parseColor("#026ED2"))
                .setWebViewStatusBarColor(Color.parseColor("#026ED2"))


                .setLightColor(false)
                .setBottomNavColor(Color.TRANSPARENT)
                .setWebNavTextSizeDp(20)
                //图片或者xml的传参方式为不包含后缀名的全称 需要文件需要放在drawable或drawable-xxx目录下 in_activity.xml, mytel_app_launcher.png
                .setAuthPageActIn("in_activity", "out_activity")
                .setAuthPageActOut("in_activity", "out_activity")
                .setProtocolShakePath("protocol_shake")
                .setVendorPrivacyPrefix("《")
                .setVendorPrivacySuffix("》")
                .setPageBackgroundPath("page_background_color")
                .setLogoImgPath("mytel_app_launcher")
                //一键登录按钮三种状态背景示例login_btn_bg.xml
                .setLogBtnBackgroundPath("login_btn_bg")
                .setScreenOrientation(authPageOrientation)

                .setPrivacyAlertIsNeedShow(true)
                .setPrivacyAlertIsNeedAutoLogin(true)
                .setPrivacyAlertAlignment(Gravity.CENTER)
                .setPrivacyAlertBackgroundColor(Color.WHITE)
                .setPrivacyAlertMaskAlpha(0.1f)
                .setPrivacyAlertWidth(dialogWidth)
                .setPrivacyAlertHeight(dialogHeight)
                .setPrivacyAlertCornerRadiusArray(new int[]{10,10,10,10})
                .setPrivacyAlertTitleTextSize(15)
                .setPrivacyAlertTitleColor(Color.BLACK)
                .setPrivacyAlertContentTextSize(12)
                .setPrivacyAlertContentColor(Color.BLUE)
                .setPrivacyAlertContentBaseColor(Color.RED)
                .setPrivacyAlertContentHorizontalMargin(40)
                .setPrivacyAlertContentAlignment(Gravity.CENTER)
                .setPrivacyAlertContentVerticalMargin(30)
                .setPrivacyAlertBtnTextColor(Color.WHITE)
                .setPrivacyAlertBtnTextColorPath("privacy_alert_btn_color")
                .setPrivacyAlertEntryAnimation("in_activity")
                .setPrivacyAlertExitAnimation("out_activity")

                .create());

配置授权页导航栏

方法

类型

说明

setStatusBarColor

int

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

setLightColor

boolean

设置状态栏字体颜色(系统版本6.0以上可设置黑色、白色,默认为黑色)。取值:

  • true:表示字体颜色为黑色。

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

setNavColor

int

设置导航栏颜色。

setNavText

String

设置导航栏标题文字。

setNavTextColor

int

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

setNavTextSize

int

设置导航栏标题文字大小。

useNavFontAndPath

boolean,String

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

  • true:使用自定义字体。

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

setNavTypeface

Typeface

设置导航栏文本使用系统字体。

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

setNavReturnImgPath

String

设置导航栏返回键图片路径(即drawable下文件名称,但无需带文件格式)。

setNavReturnHidden

boolean

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

  • true:表示隐藏。

  • false:表示显示。

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

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

setWebNavTextSize

int

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

webNavReturnImgPath

String

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

setBottomNavColor

int

设置底部虚拟按键背景色(系统版本5.0以上可设置)。

setNavTextSizeDp

int

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

setNavReturnImgDrawable

Drawable

设置导航栏返回键图片。

配置授权页Logo

方法

类型

说明

setLogoHidden

boolean

设置Logo是否隐藏。取值:

  • true:表示隐藏。

  • false:表示显示。

setLogoImgPath

String

设置Logo图片路径(即drawable下文件名称,但无需带文件格式)。

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文字颜色。

setSloganTextSize

int

设置Slogan文字大小。

setSloganOffsetY

int

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

setSloganOffsetY_B

int

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

setSloganTextSizeDp

int

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

useSloganFontAndPath

boolean,String

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

  • true:使用自定义字体。

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

setSloganTypeface

Typeface

设置slogan文本使用系统字体。

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

配置授权页号码栏

方法

类型

说明

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,字体大小不随系统变化)。

useNumberFontAndPath

boolean,String

设置手机号码文本是否使用自定义字体。自定义字体名称,包含字体格式如xxx.ttf,文件需放置在assets下。

  • true:使用自定义字体。

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

setNumberTypeface

Typeface

设置手机号码文本使用系统字体。

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

setNumberTextSpace

float

设置手机号码显示水平间距。

配置授权页登录按钮

方法

类型

说明

setLogBtnText

String

设置登录按钮文字。

setLogBtnTextColor

int

设置登录按钮文字颜色。

setLogBtnTextSize

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

设置登录按钮背景图片的drawable对象。

setLoadingImgDrawable

Drawable

设置登录loading dialog背景图片的drawable对象。

useLogBtnFontAndPath

boolean,String

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

  • true:使用自定义字体。

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

setLogBtnTypeface

Typeface

设置登录文本使用系统字体。

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

配置授权页隐私栏

方法

类型

说明

setAppPrivacyOne

String, String

设置开发者隐私条款1名称和URL(名称,URL)。

setAppPrivacyTwo

String, String

设置开发者隐私条款2名称和URL(名称,URL)。

setAppPrivacyThree

String, String

设置开发者隐私条款3名称和URL(名称,URL)。

setAppPrivacyColor

int, int

设置隐私条款名称颜色(基础文字颜色,协议文字颜色)。

setPrivacyOffsetY

int

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

setPrivacyOffsetY_B

int

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

setPrivacyState

boolean

设置隐私条款是否默认勾选。

setProtocolGravity

int

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

setPrivacyTextSize

int

设置隐私条款文字大小(单位:sp)。

setPrivacyMargin

int

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

setPrivacyBefore

String

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

setPrivacyEnd

String

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

setCheckboxHidden

boolean

设置复选框是否隐藏。取值:

  • true:表示隐藏。

  • false:表示显示。

setUncheckedImgPath

String

设置复选框未选中时图片路径。

setCheckedImgPath

String

设置复选框选中时图片路径。

setCheckBoxMarginTop

int

设置协议复选框上边距。

setVendorPrivacyPrefix

String

设置运营商协议前缀符号,只能设置一个字符,且只能设置<>、()、《》、【】、『』、[]、()中的一个。

setVendorPrivacySuffix

String

设置运营商协议后缀符号,只能设置一个字符,且只能设置<>、()、《》、【】、『』、[]、()中的一个。

setProtocolLayoutGravity

int

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

  • Gravity.LEFT:左对齐

  • Gravity.RIGHT:右对齐

说明

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

setPrivacyOffsetX

int

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

setLogBtnToastHidden

boolean

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

setPrivacyTextSizeDp

int

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

setUncheckedImgDrawable

Drawable

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

setCheckedImgDrawable

Drawable

设置复选框选中时的图片的drawable对象。

useProtocolFontAndPath

boolean,String

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

  • true:使用自定义字体。

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

setProtocolTypeface

Typeface

设置协议文本使用系统字体。

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

setPrivacyOneColor

int

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

setPrivacyTwoColor

int

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

setPrivacyThreeColor

int

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

setPrivacyOperatorColor

int

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

setCheckBoxWidth

int

设置隐私协议栏复选框宽度(单位:dp)。

setCheckBoxHeight

int

设置隐私协议栏复选框高度(单位:dp)。

配置切换控件方式

方法

类型

说明

setSwitchAccHidden

boolean

设置切换按钮点是否可见。

setSwitchAccText

String

设置切换按钮文字内容。

setSwitchAccTextColor

int

设置切换按钮文字颜色。

setSwitchAccTextSize

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

设置授权页进场动画(即anim下文件名称,但无需带文件格式)。

setAuthPageActOut

String

设置授权页退出动画(即anim下文件名称,但无需带文件格式)。

setScreenOrientation

int

设置屏幕方向。

说明

取值为ActivityInfo中的屏幕方向常量值,如:ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE。

setPageBackgroundPath

String

设置授权页背景图。

说明

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

setDialogWidth

int

设置弹窗模式授权页宽度(单位:dp),设置大于0,即为弹窗模式。

setDialogHeight

int

设置弹窗模式授权页高度(单位:dp),设置大于0,即为弹窗模式。

setDialogAlpha

float

设置弹窗授权页的蒙层透明度,取值:0~1。

  • 值为0时,表示完全透明。

  • 值为1时,表示完全不透明。

  • 介于0和1之间的值,表示不同程度的半透明。

setDiaLogoffsetX

int

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

setDiaLogoffsetY

int

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

setTapAuthPageMaskClosePage

boolean

设置授权页弹窗模式,点击非弹窗区域关闭授权页。

  • true:关闭。

  • false:不关闭

setDialogBottom

boolean

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

setPageBackgroundDrawable

Drawable

设置授权页背景图的drawable对象。

setProtocolAction

String

自定义协议页跳转Action。

setPackageName

String

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

setWebCacheMode

int

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

二次隐私协议弹窗页面

image..png

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

方法

参数类型

说明

privacyAlertIsNeedShow

boolean

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

  • true:表示显示。

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

privacyAlertIsNeedAutoLogin

boolean

设置二次隐私协议弹窗点击按钮是否需要执行登录。取值:

  • true(默认值):表示需要执行。

  • false:表示不需要执行。

privacyAlertMaskIsNeedShow

boolean

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

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

  • false:表示不显示。

privacyAlertMaskAlpha

float

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

说明

取值范围0.3~1.0。

privacyAlertAlpha

float

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

说明

取值范围0.3~1.0。

privacyAlertBackgroundColor

int

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

privacyAlertEntryAnimation

String

设置二次隐私协议弹窗显示自定义动画。

privacyAlertExitAnimation

String

设置二次隐私协议弹窗隐藏自定义动画。

privacyAlertCornerRadiusArray

int

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

说明

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

privacyAlertAlignment

int

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

privacyAlertWidth

int

设置弹窗宽度。

privacyAlertHeight

int

设置弹窗高度。

privacyAlertOffsetX

int

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

privacyAlertOffsetY

int

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

privacyAlertTitleBackgroundColor

int

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

privacyAlertTitleAlignment

int

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

privacyAlertTitleOffsetX

int

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

privacyAlertTitleOffsetY

int

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

privacyAlertTitleContent

String

设置标题文本。

privacyAlertTitleTextSize

int

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

privacyAlertTitleColor

int

设置标题文字颜色。

privacyAlertContentBackgroundColor

int

设置协议内容背景颜色。

privacyAlertContentTextSize

int

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

privacyAlertContentAlignment

int

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

privacyAlertContentColor

int

设置服务协议文字颜色。

privacyAlertContentBaseColor

int

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

privacyAlertContentHorizontalMargin

int

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

privacyAlertContentVerticalMargin

int

设置服务协议上下间距。

privacyAlertBtnBackgroundImgPath

String

设置按钮背景图片路径。

privacyAlertBtnBackgroundImgDrawable

Drawable

设置确认按钮背景图片对象。

privacyAlertBtnTextColor

int

设置确认按钮文字颜色。

privacyAlertBtnTextColorPath

String

设置确认按钮文字颜色路径。

privacyAlertBtnTextSize

int

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

privacyAlertBtnWidth

int

设置确认按钮宽度。(单位:dp)

privacyAlertBtnHeigth

int

设置确认按钮高度。(单位:dp)

privacyAlertCloseBtnShow

boolean

设置右上角的关闭按钮。

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

  • false:不显示关闭按钮。

privacyAlertCloseImagPath

String

设置关闭按钮图片路径。

privacyAlertCloseScaleType

ImageView.ScaleType

设置关闭按钮缩放类型。

privacyAlertCloseImagDrawable

Drawable

设置关闭按钮图片。

privacyAlertCloseImgWidth

int

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

privacyAlertCloseImgHeight

int

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

privacyAlertBtnGrivaty

int[]

设置确认按钮布局方式。

privacyAlertBtnContent

int

设置确认按钮文本。

privacyAlertBtnOffsetX

int

设置二次弹窗确定按钮横向坐标。

说明

privacyAlertBtnOffsetX属性优先级高于privacyAlertBtnGrivaty、privacyAlertBtnHorizontalMargin。

privacyAlertBtnOffsetY

int

设置二次弹窗确定按钮纵向坐标。

说明

privacyAlertBtnOffsetY属性优先级高于privacyAlertBtnGrivaty、privacyAlertBtnVerticalMargin。

privacyAlertBtnHorizontalMargin

int

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

privacyAlertBtnVerticalMargin

int

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

tapPrivacyAlertMaskCloseAlert

boolean

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

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

  • false:表示不关闭。

usePrivacyAlertTitleFontAndPath

boolean,String

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

  • 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。

usePrivacyAlertBtnFontAndPath

boolean,String

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

  • true:使用自定义字体。

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

setPrivacyAlertBtnTypeface

Typeface

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

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

setPrivacyAlertBefore

String

二次弹窗协议前缀。

setPrivacyAlertEnd

String

二次弹窗协议后缀。

setPrivacyAlertOneColor

int

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

setPrivacyAlertTwoColor

int

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

setPrivacyAlertThreeColor

int

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

setPrivacyAlertOperatorColor

int

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