cordova ionic 项目生物识别指纹识别人脸识别登录
·
import { Injectable } from '@angular/core';
import { Platform } from '@ionic/angular';
import { TranslateService } from '@ngx-translate/core';
import { BIOMETRIC, FACE, FINGER } from '../app.types';
import { GlobalService } from './global';
// eslint-disable-next-line @typescript-eslint/naming-convention
declare let Fingerprint: any;
@Injectable()
export class FingerService {
constructor(public global: GlobalService, public translate: TranslateService, private platform: Platform) {}
// 生物识别流程
// 1 默认生物识别开关关闭 ok
// 2 当第二次登录的时候会在登录页面提示是否开启生物识别 可用 开关开启 不可用关闭
// 3 第一次 进入到个人中心页面 生物识别的开关默认关闭,点击开启 出现是否开启提示 开启可用
// 第n次 进入个人中心页面 生物识别已经有值了 点击关闭不可用 点击开启 出现提示 开启可用
isAvailable() {
return new Promise((resolve, reject) => {
let results: any;
const isAvailableSuccess = (result) => {
/*
result depends on device and os.
iPhone X will return 'face' other Android or iOS devices will return 'finger' Android P+ will return 'biometric'
*/
results = { status: 1, data: result };
const isSupportFace = [FACE].includes(result);
const isSupportFinger = [FINGER].includes(result);
const isSupportBiometric = [BIOMETRIC].includes(result);
console.log('isSupportFace', isSupportFace, 'isSupportFinger', isSupportFinger, result);
this.global.setBiometricValue({
isSupportFinger,
isSupportFace,
isSupportBiometric
});
resolve(results);
};
const isAvailableError = (error) => {
results = { status: -1, data: error };
this.global.setBiometricValue({
isSupportFinger: false,
isSupportFace: false,
});
resolve(results);
};
Fingerprint.isAvailable(isAvailableSuccess, isAvailableError);
});
}
show() {
return new Promise((resolve, reject) => {
let results: any;
const successCallback = (result) => {
results = { status: 1, data: result };
resolve(results);
};
const errorCallback = (error) => {
// -101 没给权限 生物识别开关设置为 关闭
results = { status: -1, data: error };
resolve(results);
};
Fingerprint.show(
{
// disableBackup: this.platform.is('ios') ? false : true,
cancelButtonTitle: this.translate.instant('MessagePage.Cancelup'),
title: this.translate.instant('HomePage.dTreeBiometricLogin'),
fallbackButtonTitle: this.platform.is('ios') ? this.translate.instant('HomePage.UsePIN'): this.translate.instant('HomePage.UseBackup')
},
successCallback,
errorCallback
);
});
}
registerBiometricSecret() {
return new Promise((resolve, reject) => {
let results: any;
const successCallback = (result) => {
results = { status: 1, data: result };
console.log('registerBiometricSecret-successCallback', 1);
resolve(results);
};
const errorCallback = (error) => {
console.log('registerBiometricSecret-errorCallback', error);
// -101 没给权限 生物识别开关设置为 关闭
results = { status: -1, data: error };
resolve(results);
};
Fingerprint.registerBiometricSecret(
{
description: "Some biometric description",
secret: "my-super-secret",
invalidateOnEnrollment: true,
disableBackup: true, // always disabled on Android
},
successCallback,
errorCallback
);
});
}
}
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)