文档简介:
1.开发环境配置
注意事项 :
- 一键登录服务必须打开蜂窝数据流量并且手机操作系统给予应用蜂窝数据权限才能使用。
- 取号请求过程需要消耗用户少量数据流量(国外漫游时可能会产生额外的费用)。
- 一键登录服务目前支持中国移动4G 、5G和中国电信 4G、5G中国联通 4G、5G网络。
1.1接入前说明
1.请在天翼云官网一键登录产品帮助中心-开发指南-SDK版本发布中下载获得最新版本SDK。
2.正确配置包名与签名。
3.正确配置 appId、appSecret。
1.2 搭建开发环境
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" />复制
2.SDK方法说明
2.1 初始化
使用拉取授权页功能前必须先进行初始化操作,建议放在 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) {}复制
2.2 预取号
代码说明:
preLogin(context, CustomCallBack);复制
参数说明:
参数 | 类型 | 说明 |
---|---|---|
context | context | 调用者的上下文环境,其中 activity 中 this 即可以代表。 |
CustomCallBack | CustomCallBack | SDK接口CustomCallBack 回调 |
成功响应:
参数 | 类型 | 说明 |
---|---|---|
resultCode | String | 0 |
operatorType | String | 运营商类型 |
resultMsg | String | 调用成功 |
2.3 拉取授权页
代码说明(全屏授权页):
getToken(context, onenessConfig(), CustomCallBack);复制
代码说明(弹窗授权页):
getToken(context, onenessDialogConfig(), CustomCallBack);复制
参数说明:
参数 | 类型 | 说明 |
---|---|---|
context | context | 调用者的上下文环境,其中 activity 中 this 即可以代表。 |
CustomCallBack | CustomCallBack | SDK接口CustomCallBack回调 |
OnenessAuthThemeConfig 或OnenessAuthThemeDialogConfig | interface | 授权页接口(全屏,弹窗) |
成功响应:
参数 | 类型 | 说明 |
---|---|---|
resultCode | String | 0 |
operatorType | String | 运营商类型 |
token | String | 登录加密token |
2.4 获取真实加密手机号
详见《一键登录服务端接入文档》。
代码示例 详见demo。
3.授权页界面
3.1 授权页规范
1.以下所有 API 接口中涉及到的资源需要放置在 drawable 目录下。
2.以下所有 API 接口中如果涉及到顶部偏移和底部偏移的接口,X 相对于屏幕左侧而言 ,Y相对于屏幕顶部而言,Y_B相对屏幕底部而言,单位为dp。
3.2 授权页配置
授权页背景
方法 | 参数 | 说明 |
---|---|---|
setAuthBGImgPath | authBGImgPath: String | 设置授权页面背景 |
状态栏
方法 | 参数 | 说明 |
---|---|---|
setStatusBar | statusBarColor:Int | 设置状态栏颜色 |
标题栏
方法 | 参数 | 说明 |
---|---|---|
setNavHeight | navHeight:Int | 设置标题栏高度 |
setNavText | navText:String | 设置标题栏标题内容(默认居中) |
setNavTextColor | navTextColor:String | 设置标题栏字体颜色 |
setNavTextSize | navTextSize:Int | 设置标题栏字体大小 |
setReturnStyle | navReturnImage:StringnavReturnImageHeight :IntnavReturnImageWeight:IntnavReturnImgOffsetX:Int | 设置标题栏返回按钮图片,宽度,高度,X轴偏移量 |
Logo
方法 | 参数 | 说明 |
---|---|---|
setLogoStyle | logoImage:StringlogoImageWeight:IntlogoImageHeight:IntlogoImgOffsetY:IntlogoImgOffsetY_B:IntlogoImgOffsetX:Int | 设置Logo样式:Logo图片,宽度,高度,Y轴偏移量,Y_B偏移量,X轴偏移量 |
认证服务
方法 | 参数 | 说明 |
---|---|---|
setSloganView | sloganColor:IntsloganTextSize:IntsloganOffsetX:IntsloganTexOffsetY:Int | 设置认证服务样式:字体颜色,字体大小,X轴偏移量(默认值0 居中),Y轴偏移量 |
手机掩码
方法 | 参数 | 说明 |
---|---|---|
setNumberColor | numberColor:Int | 设置手机掩码字体颜色 |
setNumberSize | numberSize:Int | 设置手机掩码字体大小 |
setNumberOffsetX | numberOffsetX:Int | 设置手机掩码X轴偏移量(默认值0,居中显示) |
setNumFieldOffsetY | numFieldOffsetY:Int | 设置手机掩码Y轴偏移量 |
setNumberThickness | numberThickness:boolean | 设置手机号掩码字体加粗 (默认不加粗) |
登录按钮
方法 | 参数 | 说明 |
---|---|---|
setLogBtnImgPath | logBtnImgPath:String | 设置登录按钮背景 |
setLogBtnText | logBtnText:StringlogBtnTextColor:IntogBtnTextSize:Int | 设置登录按钮文本内容,字体颜色,字体大小 |
setLogBtnOffsetY | logBtnOffsetY:Int | 设置登录按钮Y轴偏移量 |
setLogBtnWeightHeight | logBtnHeight:Int | 设置登录按钮高度 |
setLogBtnMarginLeftRight | logBtnMarginLeft:IntlogBtnMarginRight:Int | 设置登录按钮距离屏幕左右的间距 |
其他登录方式
方法 | 参数 | 说明 |
---|---|---|
setSwitchStyle | switchText:StringswitchTextColor:IntswitchTextSize:IntswitchTextOffsetY:int |
设置其它登录方式样式:文本内容,字体颜色,字体大小,Y轴偏移量(默认居中显示) |
协议条款
方法 | 参数 | 说明 |
---|---|---|
setCheckBoxImgPath | checkBoxPicStr:StringunCheckBoxPicStr:StringcheckBoxWeight:IntcheckBoxHeight: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:StringprivacySplit2:String | 设置协议条款连接语:x和x与y |
setPrivacyText | privacyTextSize:IntclauseBaseColor:StringclauseColor:String | 设置协议条款字体大小,基本条款字体颜色,自定义协议条款颜色 |
setPrivacyMargin | privacyMarginLeft:StringprivacyMarginRight:String | 设置协议部分包括勾选框 距离屏幕左右的间距 |
setPrivacyOffsetY_B | privacyOffsetY_B:Int | 设置协议部分距屏幕底部距离 |
setPrivacyOffsetY | privacyOffsetY:Int | 设置协议部分距屏幕顶部距离(不使此方法时 设置值为0) |
setPrivacyBookSymbol | privacyBookSymbol:boolean | 协议名称是否加书名号 |
setPageWindowMode | windowWidth:IntwindowHeight:Int | 设置弹框大小 |
setIsBottom | isBottom:Boolean | 设置是否为底部弹窗 =true,false =居中弹窗 |
自定义接口
通过设置该回调接口,可以对以下事件进行定制化处理。
.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) {}复制
4.授权页关闭方法
代码示例:
IdealSplash.quitAuthPage(context);复制
5.本机号码校验
5.1 认证接口获取Token
getMobileAuthToken(Context context, phone, mobileAuthCallback);复制
参数说明:
参数 | 类型 | 说明 |
---|---|---|
context | context | 调用者的上下文环境,其中 activity 中 this 即可以代表。 |
phone | String | 需要校验的手机号码 |
mobileAuthCallback | mobileAuthCallback | Sdk 自定义接口 |
成功响应:
参数 | 类型 | 说明 |
---|---|---|
resultCode | context | 0 |
operatorType | String | 运营商类型 |
resultMsg | String | 调用成功 |
token | String | 校验加密token |
获取token回调代码示例:
mobileAuthCallback = new MobileAuthCallback() { @Override
public void onResult(String result) {
}复制
5.2 请求客户服务器进行校验
详见一键登录服务端接入文档。
代码示例详见 demo。
6.其他请求方法
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:未知 |
7.返回码说明
详见一键登录服务端接入文档。