ID Verification Native SDK 提供自定义 UI 颜色及图标的配置接口。开发者可通过 setCustomUIConfig 接口,以文件或 JSON 数据格式传入 UI 配置,实现界面自定义。本文介绍该接口的参数说明及相关代码示例。
部分自定义配置依赖 SDK 版本,使用前请将 SDK 升级至最新版本。
当 UI 自定义配置与验证接口的扩展参数存在冲突时,以 UI 自定义配置为准。
配置生效规则与建议
最低 SDK 版本要求:1.4.0 及以上。
默认继承机制:未传递的配置项或其样式属性,系统将自动采用默认值。
非法配置项处理:
颜色格式须为
#RRGGBB或#AARRGGBB。若传入非法值,系统将自动采用默认值,并返回对应错误提示。Base64 图标须为带合法前缀的 Base64 图片字符串(如
data:image/png;base64,...)。若传入非法值,系统将自动采用默认值,并返回对应错误提示。
增量配置建议:建议仅传递需要修改的配置项,其余配置项保持默认值,以降低配置复杂度。
接口说明
Android端
接口定义
Android SDK 提供 setCustomUIConfig 接口,用于自定义 UI 颜色及图标。调用该方法并传入相应参数,即可实现 UI 自定义效果。
/**
* 设置自定义UI颜色和icon图标
*
* @return 配置文件检测出的异常信息。
* @description 此接口用于设置自定义UI。
* @paramType paramType 参数类型{@link IDTFacade} ,可传范围
* {@link IDTFacade#EXT_PARAMS_CONFIG_JSON} | {@link IDTFacade#EXT_PARAMS_CONFIG_ASSETS_NAME})。
*
* @params {@link String} params 参数值,与paramType相对应的值。
*/
public String setCustomUIConfig(@IDTFacade int paramType, String param) {
// ...
}入参说明
名称 | 类型 | 说明 |
paramType | int | 配置自定义入参的类型,可选值如下: |
param | String | 根据 |
返回值
String 类型。当 SDK 解析 param 内容时遇到错误或出现异常,将通过该返回值返回提示信息。若配置参数无效,请重点关注返回值中的错误信息。
调用示例
// 方式一:传入 assets 文件名
String customUIErrMsg = IdentityPlatform.getInstance()
.setCustomUIConfig(IDTFacade.EXT_PARAMS_CONFIG_ASSETS_NAME, "DTCustomUIConfig.json");
// 方式二:传入 JSON 字符串
String customUIErrMsg = IdentityPlatform.getInstance()
.setCustomUIConfig(IDTFacade.EXT_PARAMS_CONFIG_JSON, jsonConfig);
// 建议联调阶段打印返回值
Log.d("CustomUI", "errMsg: " + customUIErrMsg);iOS端
iOS SDK 提供 setCustomUI 接口,用于自定义 UI 颜色及图标。调用该方法并传入相应参数,即可实现 UI 自定义效果。
/**
* 设置自定义UI颜色和icon图标
*
* @completeBlock 配置文件检测出的异常信息。
* @configuration 自定义UI的jsonString。
*/
- (void)setCustomUI:(nonnull NSString *)configuration
complete:(void(^_Nullable)(BOOL success, NSError * _Nullable error, NSDictionary *warningDict))completeBlock {
......
}入参说明
名称 | 类型 | 说明 |
configuration | String | 自定义UI的jsonString |
completeBlock | block | 结果信息回调:
|
返回值
NSDictionary 类型。当 SDK 解析 param 内容时遇到错误或出现异常,将通过该返回值返回提示信息。若配置参数无效,请重点关注返回值中的错误信息。
调用示例
[[AliyunIdentityPlatform sharedInstance] setCustomUI:customUIJSON complete:^(BOOL success, NSError * _Nullable error, NSDictionary *warningDict) {
if (!success) {
NSLog(@"自定义 UI 解析失败: %@", error.localizedDescription);
} else if (warningDict.count > 0) {
NSLog(@"自定义 UI 告警: %@", warningDict);
}
}];配置结构概览
新版配置采用 6 个顶层目录,每个顶层目录下包含对应的详细字段配置:
{
"commonConfig": { },
"dialogConfig": { },
"guideConfig": { },
"ocrConfig": { },
"faceConfig": { },
"nfcConfig": { }
}顶层目录 | 控制范围 |
| 跨页面通用配置:Loading 文案颜色、主操作按钮、返回/关闭图标 |
| 全 SDK Alert 弹窗:标题、正文、按钮文字颜色 |
| 引导页:主标题、内容文字颜色 |
| OCR 识别页及结果页 |
| 刷脸页:标题、提示文字、背景、进度条 |
| NFC 读取页、读取状态弹层及信息输入页 |
全量默认配置
以下 JSON 中所有颜色均取 SDK 默认值,Base64 图标以占位符表示。可直接复制后按需修改:
{
"commonConfig": {
"loadingMessageColor": "#000000",
"btnBGColor": "#FF6A00",
"btnDisableBGColor": "#D5D5D5",
"btnMessageColor": "#F9F9FA",
"btnDisableMessageColor": "#F9F9FA",
"exitIconBase64": "data:image/png;base64,..."
},
"dialogConfig": {
"titleColor": "#000000",
"messageColor": "#888888",
"primaryActionColor": "#FF6A00",
"secondaryActionColor": "#000000",
"singleActionColor": "#FF6A00"
},
"guideConfig": {
"titleColor": "#3D3D3D",
"contentColor": "#333333"
},
"ocrConfig": {
"borderColor": "#ffffff",
"titleColor": "#ffffff",
"albumLabelColor": "#ffffff",
"takePhotoLabelColor": "#ffffff",
"submitTitleColor": "#ffffff",
"floodLightBase64": "data:image/png;base64,...",
"unFloodLightBase64": "data:image/png;base64,...",
"autoScanBase64": "data:image/png;base64,...",
"takeShootBase64": "data:image/png;base64,...",
"albumBase64": "data:image/png;base64,...",
"takePhotoBase64": "data:image/png;base64,...",
"submitBase64": "data:image/png;base64,...",
"resultTitleColor": "#000000",
"resultTipColor": "#000000",
"resultTipBgColor": "#EDEDED",
"resultErrorTipColor": "#C80000",
"resultErrorTipBgColor": "#FFE0DC",
"resultErrorTipIconBase64": "data:image/png;base64,...",
"resultInfoTitleColor": "#333333",
"resultInfoContentColor": "#999999",
"resultInfoContentBgColor": "#F7F7F7",
"resultInfoBorderColor": "#FF6A00"
},
"faceConfig": {
"titleColor": "#000000",
"tipColor": "#000000",
"bgColor": "#ffffff",
"progressStartColor": "#80ffffff",
"progressEndColor": "#FF6A00"
},
"nfcConfig": {
"titleColor": "#3D3D3D",
"contentColor": "#3D3D3D",
"readStatusTextColor": "#3D3D3D",
"readStatusExitBase64": "data:image/png;base64,...",
"inputTitleColor": "#262626",
"inputLabelColor": "#333333",
"inputEditColor": "#333333",
"inputEditHintColor": "#999999"
}
}最小配置示例
仅修改最常用的主按钮和主标题颜色,其余配置项均使用 SDK 默认值:
{
"commonConfig": {
"btnBGColor": "#FF6A00",
"btnMessageColor": "#FFFFFF"
},
"ocrConfig": {
"titleColor": "#FFFFFF"
},
"faceConfig": {
"titleColor": "#000000"
}
}
详细字段说明与默认值
commonConfig
字段名 | 字段含义 | 默认颜色 | Andriod效果图 | iOS效果图 |
| Loading 文案色, |
|
|
|
| 主操作按钮背景色(可点击态) |
|
|
|
| 主操作按钮背景色(不可点击态) |
|
|
|
| 主操作按钮文案色(可点击态) |
|
|
|
| 主操作按钮文案色(不可点击态) |
|
|
|
| 页面级返回/关闭按钮图标 |
|
|
|
dialogConfig
字段名 | 字段含义 | 默认颜色 | Andriod效果图 | iOS效果图 |
| 弹窗标题文字色 |
|
|
|
| 弹窗正文文字色 |
|
|
|
| 双按钮态主操作按钮文字色(右侧) |
|
|
|
| 双按钮态次操作按钮文字色(左侧) |
|
|
|
| 单按钮态唯一按钮文字色 |
|
|
|
guideConfig
字段名 | 字段含义 | 默认颜色 | Andriod效果图 | iOS效果图 |
| 引导页主标题文字色 |
|
|
|
| 引导页内容文字色 |
|
|
|
ocrConfig
字段名 | 字段含义 | 默认颜色 | Andriod效果图 | iOS效果图 |
| 扫描框 / 镂空区域边框色 |
|
|
|
| 识别页顶部提示文案色 |
|
|
|
| 相册选择按钮文字色 |
|
|
|
| 拍照 / 扫描切换按钮文字色 |
|
|
|
| 闪光灯开启图标 |
|
|
|
| 闪光灯关闭图标 |
|
|
|
| 自动扫描按钮图标 |
|
|
|
| 拍照按钮切换图标 |
|
|
|
| 相册选择按钮图标 |
|
|
|
| 拍照按钮图标 |
|
|
|
| 提交提示文案色 |
|
|
|
| 提交按钮图标 |
|
|
|
| 结果页标题文字色 |
|
|
|
| 顶部提示条正常态文字色 |
|
|
|
| 顶部提示条正常态背景色 |
|
|
|
| 顶部提示条校验失败态文字色 |
|
|
|
| 顶部提示条校验失败态背景色 |
|
|
|
| 校验失败提示图标 |
|
|
|
| 信息区条目标题色 |
|
|
|
| 信息区输入框文字色 |
|
|
|
| 信息区输入框背景色 |
|
|
|
| 信息区输入框边框色(校验失败描边) |
|
|
|
faceConfig
字段名 | 字段含义 | 默认颜色 | Andriod效果图 | iOS效果图 |
| 刷脸框顶部提示文案色 |
|
|
|
| 刷脸框内提示文案色 |
|
|
|
| 人脸识别页面背景色 |
|
|
|
| 环形进度条起始色 |
|
| 无(无法设置初始值) |
| 环形进度条终止色 |
|
|
|
nfcConfig
字段名 | 字段含义 | 默认颜色 | Andriod效果图 | iOS效果图 |
| NFC 读取页标题文字色 |
|
|
|
| NFC 读取页正文文字色 |
|
|
|
| 读取状态弹层状态文案色 |
|
| 无(系统弹窗无法修改) |
| 读取状态弹层关闭图标 |
|
| 无(系统弹窗无法修改) |
| 信息输入页标题文字色 |
|
|
|
| 输入页三个标签的统一文字色 |
|
|
|
| 输入页三个输入框的统一文字色 |
|
|
|
| 输入页三个输入框的统一占位符色 |
|
|
|




























































































