开发环境配置
注意事项 :
- 一键登录服务必须打开蜂窝数据流量并且手机操作系统给予应用蜂窝数据权限才能使用。
- 取号请求过程需要消耗用户少量数据流量(国外漫游时可能会产生额外的费用)。
- 一键登录服务目前支持中国移动4G 、5G和中国电信 4G、5G中国联通 4G、5G网络。
兼容性
条目 | 说明 |
---|---|
适配版本 | minSdkVersion 16 及以上版本 |
接入前说明
1.请在天翼云官网一键登录产品帮助中心-开发指南-SDK版本发布中下载获得最新版本SDK。
2.正确配置包名与签名。
3.正确配置 appId、appSecret。
搭建开发环境
1.在Eclipse/AS 中建立你的工程。
2.将*.aar(SDK)包拷贝到项目工程的libs目录下,如果没有可新建。
3.在工程的 build.gradle 文件添加:
dependencies {
implementation(name: 'sdk包名', ext: 'aar')}
4.在工程的app/build.gradle目录下添加:
repositories {flatDir {
dirs 'libs'
}
}
5.混淆规则
在Proguard混淆文件中增加以下配置:
-dontwarn com.example.cfYun.sdk.**
-keep class com.example.cfYun.**{*;}
-keep class cn.com.chinatelecom.account.**{*;}
-dontwarn com.sdk.**
-keep class com.sdk.** { *;}
6.权限申请
<uses-permission android:name="android.permission.INTERNET" />
SDK内部权限
权限 | 说明 |
---|---|
ACCESS_NETWORK_STATE | 获取网络状态,区分是否数据、WiFi |
CHANGE_NETWORK_STATE | 允许程序改变网络连接状态 |
READ_PHONE_STATE | 获取网络制式 |
ACCESS_WIFI_STATE | 允许程序访问WiFi网络状态信息 |
SDK方法说明
初始化
使用拉取授权页功能前必须先进行初始化操作,建议放在 Application
的 onCreate()
方法中。
代码说明:
IdealSplash.initSdk(context, appid,appSecret);
注意初始化V1.0.3版本以上都需加
appSecret
参数。
参数说明:
参数 | 类型 | 说明 |
---|---|---|
context | context | 调用者的上下文环境,其中 activity 中 this 即可以代表 |
appid | String | 应用的appId |
appSecret | String | 应用秘钥 |
成功响应:
参数 | 类型 | 说明 |
---|---|---|
msg | String | Success |
code | Int | 200 |
operatorType | String | 运营商类型 |
userId | String | 用户Id |
初始化结果回调方法示例:
initCallOnClick.getInstance().setOnclickCallBack(new initCallBack() {@Override}
public void initCallBack(String response) {}
预取号
代码说明:
preLogin(context, CustomCallBack,timeout);
参数说明:
参数 | 类型 | 说明 |
---|---|---|
context | context | 调用者的上下文环境,其中 activity 中 this 即可以代表 |
CustomCallBack | CustomCallBack | SDK接口CustomCallBack回调 |
timeout | Int | 预取号超时时间(单位:秒) |
成功响应:
参数 | 类型 | 说明 |
---|---|---|
resultCode | String | 0 |
operatorType | String | 运营商类型 |
resultMsg | String | 调用成功 |
拉取授权页
代码说明(全屏授权页):
getToken(context, onenessConfig(), CustomCallBack,timeout);
代码说明(弹窗授权页):
getToken(context, onenessDialogConfig(), CustomCallBack,timeout);
参数说明:
参数 | 类型 | 说明 |
---|---|---|
context | context | 调用者的上下文环境,其中 activity 中 this 即可以代表 |
CustomCallBack | CustomCallBack | SDK接口CustomCallBack回调 |
OnenessAuthThemeConfig 或OnenessAuthThemeDialogConfig | interface | 授权页接口(全屏,弹窗) |
timeout | int | 超时时间(单位:秒) |
成功响应:
参数 | 类型 | 说明 |
---|---|---|
resultCode | String | 0 |
operatorType | String | 运营商类型 |
token | String | 登录加密token |
获取真实加密手机号
详见服务端接入。
代码示例 详见demo。
授权页界面
授权页规范
1.以下所有 API 接口中涉及到的资源需要放置在 drawable
目录下。
2.以下所有 API 接口中如果涉及到顶部偏移和底部偏移的接口,X相对于屏幕左侧而言 ,Y相对于屏幕顶部而言,Y_B相对屏幕底部而言,单位为dp。
授权页配置
授权页背景
方法 | 参数 | 说明 |
---|---|---|
setAuthBGImgPath | authBGImgPath: String | 设置授权页面背景 |
setIsImmersive | isImmersive :boolean | 设置沉浸式(在授权页背景是图片要实现拉伸到状态栏时,可设置为true,不设置为false) |
状态栏
方法 | 参数 | 说明 |
---|---|---|
setStatusBar | statusBarColor:Int | 设置状态栏颜色(当setIsImmersive= true 时 要设置android.R.color.transparent) |
setStatusBar | isDarkColor:boolean | 设置状态栏字体颜色(true为黑色,false为白色) |
标题栏
方法 | 参数 | 说明 |
---|---|---|
setNavHeight | navHeight:Int | 设置标题栏高度 |
setNavText | navText:String | 设置标题栏标题内容(默认居中) |
setNavTextColor | navTextColor:String | 设置标题栏字体颜色 |
setNavTextSize | navTextSize:Int | 设置标题栏字体大小 |
setNavTextSize | navTextThickness:boolean | 设置标题栏字体是否加粗 |
setReturnStyle | navReturnImage:String navReturnImageHeight :Int navReturnImageWeight:Int navReturnImgOffsetX:Int navReturnScaleMode:ScaleType |
设置标题栏返回按钮图片,宽度,高度,X轴偏移量,缩放模式 |
setNavColor | navColor:int | 标题栏背景色 |
setNavTextTypeface | navTextTypeface:Typeface | 设置标题字体样式 |
setNavTextOffsetX | navTextOffsetX:int | 标题X轴偏移量 0居中 |
Logo
方法 | 参数 | 说明 |
---|---|---|
setLogoStyle | logoImage:String logoImageWeight:Int logoImageHeight:Int logoImgOffsetY:Int logoImgOffsetY_B:Int logoImgOffsetX:Int logoImgScaleMode:ScaleType |
设置Logo样式:Logo图片,宽度,高度,Y轴偏移量,Y_B偏移量,X轴偏移量,缩放模式 |
认证服务
方法 | 参数 | 说明 |
---|---|---|
setSloganView | sloganColor:Int sloganTextSize:Int sloganOffsetX:Int sloganTexOffsetY:Int sloganThickness:boolean |
设置认证服务样式:字体颜色,字体大小,X轴偏移量(默认值0 居中),Y轴偏移量,字体是否加粗 |
setSloganTextTypeface | sloganTextTypeface:Typeface | 设置认证服务字体样式 |
setSloganText | sloganCMText:String sloganCTText: String sloganCUText:String |
参数一:设置 移动认证服务文本 参数二:设置电信认证服务文本 参数三:设置联通认证服务文本三个参数为必传 |
手机掩码
方法 | 参数 | 说明 |
---|---|---|
setNumberColor | numberColor:Int | 设置手机掩码字体颜色 |
setNumberSize | numberSize:Int | 设置手机掩码字体大小 |
setNumberOffsetX | numberOffsetX:Int | 设置手机掩码X轴偏移量(默认值0,居中显示) |
setNumFieldOffsetY | numFieldOffsetY:Int | 设置手机掩码Y轴偏移量 |
setNumberThickness | numberThickness:boolean | 设置手机号掩码字体加粗 (默认不加粗) |
登录按钮
方法 | 参数 | 说明 |
---|---|---|
setLogBtnImgPath | logBtnImgPath:String | 设置登录按钮背景 |
setLogBtnText | logBtnText:String logBtnTextColor:Int logBtnTextSize:Int logBtnTextThickness:boolean |
设置登录按钮文本内容,字体颜色,字体大小,字体是否加粗 |
setLogBtnOffsetY | logBtnOffsetY:Int | 设置登录按钮Y轴偏移量 |
setLogBtnWeightHeight | logBtnHeight:Int | 设置登录按钮高度 |
setLogBtnMarginLeftRight | logBtnMarginLeft:IntlogBtnMarginRight:Int | 设置登录按钮距离屏幕左右的间距 |
其他登录方式
方法 | 参数 | 说明 |
---|---|---|
setSwitchStyle | switchText:String switchTextColor:Int switchTextSize:Int switchTextOffsetY:int switchTextOffsetY_B:int |
设置其它登录方式样式:文本内容,字体颜色,字体大小,Y轴偏移量(默认居中显示),Y_B偏移量(Y轴偏移量为0时有效) |
setSwitchTextTypeface | switchTextTypeface:Typeface | 设置其他方式登录字体样式 |
协议条款
方法 | 参数 | 说明 |
---|---|---|
setCheckBoxImgPath | checkBoxPicStr:String unCheckBoxPicStr:String checkBoxWeight:Int checkBoxHeight:Int |
设置协议勾选框样式:选中图片,未选中图片,宽度,高度 |
setPrivacyStateSelect | privacyStateSelect:boolean | 设置协议勾选项默认状态,false=未选中,true=选中 |
setPrivacyTextBefore | privacyTextBefore:String | 设置协议前缀 |
setPrivacyTextAndUrl1 | clause1:StringclauseUrl1:String | 设置自定义协议1,协议名称,协议URL(不设置协议 ,值为null) |
setPrivacyTextAndUrl2 | clause2:StringclauseUrl2:String | 设置自定义协议2,协议名称,协议URL(不设置协议 ,值为null) |
setPrivacyTextAndUrl3 | Clause3:StringclauseUrl3:String | 设置自定义协议3,协议名称,协议URL(不设置协议 ,值为null) |
setPrivacyTextAndUrl4 | Clause4:StringclauseUrl4:String | 设置自定义协议4,协议名称,协议URL(不设置协议 ,值为null) |
setPrivacyTextAfter | privacyTextAfter:String | 设置协议后缀 |
setPrivacySplit | privacySplit1:String privacySplit2:String |
设置协议条款连接语:x和x与y |
setPrivacyText | privacyTextSize:Int clauseBaseColor:String clauseColor:String |
设置协议条款字体大小,基本条款字体颜色,自定义协议条款颜色 |
setPrivacyMargin | privacyMarginLeft:String privacyMarginRight:String |
设置协议部分包括勾选框 距离屏幕左右的间距 |
setPrivacyOffsetY_B | privacyOffsetY_B:Int | 设置协议部分距屏幕底部距离 |
setPrivacyOffsetY | privacyOffsetY:Int | 设置协议部分距屏幕顶部距离(不使此方法时 设置值为0) |
setPrivacyBookSymbol | privacyBookSymbol:boolean | 协议名称是否加书名号 |
setPageWindowMode | windowWidth:Int windowHeight:Int |
设置弹框大小 |
setIsBottom | isBottom:Boolean | 设置是否为底部弹窗 =true,false =居中弹窗 |
setWebNavStyle | webNavTextColor:int webNavTextSize:int |
协议web的标题栏的字体颜色,字体大小 |
setCheckBoxLocation | checkBoxLocation:int | 复选框相对右侧协议文案居上或者居中,默认居上。0:居上,1:居中 |
弹窗
方法 | 参数 | 说明 |
---|---|---|
setPageWindowMode | windowWidth:Int windowHeight:Int | 设置弹框宽高 |
setIsBottom | isBottom:Boolean | 设置是否为底部弹窗 =true,false =居中弹窗 |
setAuthBGImage | backgroundImage:String | 设置弹窗图片背景(背景为图片时设置) |
setAuthBGImgRadius | backgroundImageRadius:int | 设置弹窗图片背景圆角数(背景为图片时设置) |
进出动画
方法 | 参数 | 说明 |
---|---|---|
setPageActAnim | activityIn:String pageActOut:String |
设置全屏授权页的进出动画 参数1:进入动画 参数2:退出动画 |
国际化
方法 | 参数 | 说明 |
---|---|---|
setLanguageType | languageType: int | 设置显示语言 0-简体中文 1-繁体中文 2-英文 |
自定义接口
通过设置该回调接口,可以对以下事件进行定制化处理。
.setAuthThemListener(new AuthThemListener() {
/**
* 未勾选协议回调
* @param param Context
*/
@Override
public void onUnCheckedState(Context context) {}
/**
* 关闭按钮回调
* @param param Context
*/
@Override
public void onReturnClick(Context context) {}
/**
* 添加自定义View
* @param param Context
* @param param relativeLayout
*/
@Override
public void onAddCustomLayout(Context context, RelativeLayout relativeLayout){}
/**
* 其他登录方式点击事件回调
* @param param Context
*/
@Override
public void onOtherLogin(Context context) {}
});
/**
* 勾选框监听
* @param param Context
* @param param aBoolean true:勾选 false:未勾选
* */
@Override
public void onCheckedStateChange(Context context, Boolean aBoolean) {}
/**
* 登录按钮点击事件回调
* @param param Context
*/
@Override
public void setLogBtnClickListener(Context context) {}
/**
* 全屏授权页物理返回键监听
*/
.setBackPressedListener(new BackPressedListener() {
@Override
public void setBackPressedListener() { } })
/**
*
设置授权按钮监听事件,⽤⼾点击登录按钮时如果未勾选协议时触发此方法实现二次弹窗确认的功能
AuthLoginCallBack 授权回调,通过onAuthLoginCallBack(boolean b)决定是否继续登录
Map 返回当前运营商的协议标题与协议url
*/
.setAuthLoginListener(new AuthLoginListener() {
@Override
public void onLoginListener(Context context, AuthLoginBtCallBack authLoginBtCallBack, Map<String, String> map) {} })
授权页关闭方法
代码示例:
IdealSplash.quitAuthPage(context);
本机号码校验
认证接口获取Token
getMobileAuthToken(Context context,phone,mobileAuthCallback,timeout);
参数说明:
参数 | 类型 | 说明 |
---|---|---|
context | context | 调用者的上下文环境,其中 activity 中 this 即可以代表 |
phone | String | 需要校验的手机号码 |
mobileAuthCallback | mobileAuthCallback | Sdk 自定义接口 |
timeout | Int | 超时时间(单位:秒) |
成功响应:
参数 | 类型 | 说明 |
---|---|---|
resultCode | context | 0 |
operatorType | String | 运营商类型 |
resultMsg | String | 调用成功 |
token | String | 校验加密token |
获取token回调代码示例:
mobileAuthCallback = new MobileAuthCallback() {@Override}
public void onResult(String result) {}
请求客户服务器进行校验
详见服务端接入。
代码示例详见 demo。
其他请求方法
1.日志输出开关:true: 开启 false: 不开启。
IdealSplash.setDebug(Boolean boolean)
2.判断设备移动数据网络是否开启:返回参数:true: 开启 false: 未开启。
IdealSplash.isMobileNetwork(context)
3.获取SDK版本号 返回String类型。
IdealSplash.getSDKVersion
4.获取运营商类型
JSONObject getOperatorType(Context context)
响应参数:
参数 | 类型 | 说明 |
---|---|---|
operatorType | String | 类型: CM:移动 CU:联通 CT:电信 UN:未知 |
5.清除预取号信息
IdealSplash.clearLoginCache(context);
返回码说明
详见服务端接入。