1.先上效果图
![](https://img-blog.csdnimg.cn/direct/54db0b0c49f44521809eef58e2143aa9.jpeg)
2.上代码
import userIAM from '@ohos.userIAM.userAuth'
import promptAction from '@ohos.promptAction'
@Entry
@Component
struct FingerLoginPage {
@State isOn:boolean = false
build() {
Column() {
Row(){
Text(`指纹登录-${this.isOn?'开启':'未开启'}`)
Toggle({ type: ToggleType.Switch, isOn: this.isOn })
.selectedColor('#007DFF')
.switchPointColor('#FFFFFF')
.onChange((isOn: boolean) => {
let that = this
this.isOn = isOn
if(isOn){
if(canIUse('SystemCapability.UserIAM.UserAuth.Core')){
console.error('设备支持指纹')
/**
* 获取认证对象
*/
let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
let authType = userIAM.UserAuthType.FINGERPRINT;
let authTrustLevel = userIAM.AuthTrustLevel.ATL1;
let authParam: userIAM.AuthParam = {
challenge: challenge,
authType: [authType],
authTrustLevel: authTrustLevel,
};
let widgetParam:userIAM.WidgetParam = {
title:'请验证指纹'
}
let auth:userIAM.UserAuthInstance
try {
auth = userIAM.getUserAuthInstance(authParam,widgetParam)
console.error("获取认证对象成功");
/**
* 订阅认证结果
*/
try {
auth.on('result',{
onResult(result){
console.error('订阅认证结果result = ' + JSON.stringify(result));
let resultNum:number = result.result
if(resultNum === 12500000){// 认证成功
console.error("指纹认证成功");
that.isOn = true
}
else if(resultNum === 12500001){// 认证失败
console.error("指纹认证失败");
that.isOn = false
}
else if(resultNum === 12500003){// 认证取消
console.error("指纹认证取消");
that.isOn = false
}
else if(resultNum === 12500010){// 用户未录入指纹
console.error("用户未录入指纹");
that.isOn = false
}else{
that.isOn = false
console.error('认证错误')
}
// 取消订阅认证结果
try {
auth.off("result");
console.error("取消订阅认证结果成功");
} catch (error) {
that.isOn = false
console.error("取消订阅认证结果失败, error = " + error);
}
}
});
console.error("订阅认证结果成功");
/**
* 开始认证
*/
try {
auth.start();
console.error("开始认证");
} catch (error) {
console.error("开始认证失败:" + error);
that.isOn = false
}
} catch (error) {
that.isOn = false
console.error("订阅认证结果失败 " + error);
}
} catch (error) {
that.isOn = false
promptAction.showToast({
message: '获取认证对象失败',
duration: 1500
});
console.error("获取认证对象失败--" + error);
}
}else{
that.isOn = false
promptAction.showToast({
message: '设备不支持指纹识别。。。',
duration: 1500
});
}
}
})
}
.width('100%')
.height(50)
.margin({top:100})
.justifyContent(FlexAlign.SpaceBetween)
}
.width('100%')
.height('100%')
.padding(10)
}
}