1# @ohos.userIAM.userAuthIcon (嵌入式用户身份认证控件) 2 3<!--Kit: User Authentication Kit--> 4<!--Subsystem: UserIAM--> 5<!--Owner: @WALL_EYE--> 6<!--Designer: @lichangting518--> 7<!--Tester: @jane_lz--> 8<!--Adviser: @zengyawen--> 9 10提供应用界面上展示的人脸、指纹认证图标,具体功能如下: 11 121. 提供嵌入式的人脸、指纹认证控件图标,可被应用集成。 13 142. 支持自定义图标的颜色和大小,但图标样式不可变更。 15 163. 点击控件图标后将以系统弹窗的方式,拉起人脸、指纹认证控件。 17 18> **说明:** 19> - 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 20 21## 导入模块 22 23```ts 24import { userAuth, UserAuthIcon } from '@kit.UserAuthenticationKit'; 25``` 26 27## 子组件 28 29无 30 31## 属性 32 33不支持通用属性。 34 35## UserAuthIcon 36 37UserAuthIcon({ 38 authParam: userAuth.AuthParam, 39 widgetParam: userAuth.WidgetParam, 40 iconHeight?: Dimension, 41 iconColor?: ResourceColor, 42 onIconClick?: ()=>void, 43 onAuthResult: (result: userAuth.UserAuthResult)=>void 44}) 45 46**装饰器类型:**\@Component 47 48**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 49 50**系统能力:** SystemCapability.UserIAM.UserAuth.Core 51 52**参数:** 53 54| 名称 | 类型 | 必填 | 说明 | 55| -------------- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ | 56| authParam | [userAuth.AuthParam](js-apis-useriam-userauth.md#authparam10) | 是 | 用户认证相关参数。 | 57| widgetParam | [userAuth.WidgetParam](js-apis-useriam-userauth.md#widgetparam10) | 是 | 用户认证界面配置相关参数。 | 58| iconHeight | [Dimension](../apis-arkui/arkui-ts/ts-types.md#dimension10) | 否 | 设置icon的高度,宽高比1:1,默认64。 | 59| iconColor | [ResourceColor](../apis-arkui/arkui-ts/ts-types.md#resourcecolor) | 否 | 设置icon的颜色,默认值:$r('sys.color.ohos_id_color_activated')。| 60| onIconClick | ()=>void | 否 | 用户点击icon回调接口。 | 61| onAuthResult | (result: [userAuth.UserAuthResult](js-apis-useriam-userauth.md#userauthresult10))=>void| 是 | 用户认证结果信息回调接口。<br>应用需要申请`ohos.permission.ACCESS_BIOMETRIC`权限,否则应用将仅展示图标,无法正常拉起身份认证控件。 | 62 63## 事件 64 65不支持通用事件。 66 67## 示例 68 69```ts 70import { cryptoFramework } from '@kit.CryptoArchitectureKit'; 71import { userAuth, UserAuthIcon } from '@kit.UserAuthenticationKit'; 72 73@Entry 74@Component 75struct Index { 76 rand = cryptoFramework.createRandom(); 77 len: number = 16; 78 randData: Uint8Array = this.rand?.generateRandomSync(this.len)?.data; 79 authParam: userAuth.AuthParam = { 80 challenge: this.randData, 81 authType: [userAuth.UserAuthType.FACE, userAuth.UserAuthType.PIN], 82 authTrustLevel: userAuth.AuthTrustLevel.ATL3 83 }; 84 widgetParam: userAuth.WidgetParam = { 85 title: '请进行身份认证' 86 }; 87 88 build() { 89 Row() { 90 Column() { 91 UserAuthIcon({ 92 authParam: this.authParam, 93 widgetParam: this.widgetParam, 94 iconHeight: 200, 95 iconColor: Color.Blue, 96 onIconClick: () => { 97 console.info('The user clicked the icon.'); 98 }, 99 onAuthResult: (result: userAuth.UserAuthResult) => { 100 console.info(`Get user auth result, result = ${JSON.stringify(result)}`); 101 } 102 }) 103 } 104 } 105 } 106} 107``` 108 109调用onAuthResult可能会抛出错误码,错误码详细介绍请参见[用户认证错误码](errorcode-useriam.md)。 110 111**人脸认证图例:** 112 113 114 115**指纹认证图例:** 116 117 118