react-native - 如何在 React-Native 中检查对 Touch ID、Face ID、密码和模式锁定的支持
问题描述
我已经实施了一个react-native-fingerprint-scanner
,它正在为Touch Id
.
现在我想为两个平台添加 Touch ID、Face ID、Passcode 的身份验证
有什么方法可以检查您的设备是否支持。另外,我尝试过使用react-native-touch-id
,但它不适用于Face Id
android。
有没有办法在两个平台(iOS/Android)上实现这一点?
参考:链接
解决方案
react-native-touch-id
也支持 FaceId。但是,不再积极维护。因此,他们建议使用 expo 本地身份验证。它适用于所有反应原生应用程序,无论是否博览会。
要使用它,首先您必须安装react-native-unimodules
. 遵循本指南https://docs.expo.io/bare/installing-unimodules/
安装后,您可以通过以下方式安装它
npm install expo-local-authentication
将以下行添加到您的导入中
import LocalAuthentication from 'expo-local-authentication';
之后,我们就可以使用它了。
async function biometricAuth(){
const compatible = await LocalAuthentication.hasHardwareAsync();
if (compatible) {
const hasRecords = await LocalAuthentication.isEnrolledAsync();
if (hasRecords) {
const result = await LocalAuthentication.authenticateAsync();
return result;
}
}
}
它将自动在可用的本地身份验证(TouchID、FaceID、数字锁、图案锁等)之间进行选择并对用户进行身份验证。
推荐阅读
- c - 具有属性的 Doxygen 文档结构成员
- node.js - 在节点上运行文件时出现类型错误
- mysql - 我有一个关于我的数据库表中应该是主键和外键的挑战
- amp-html - amp-user-notification 中的 amp-img 不会在页面加载时显示
- gstreamer - Gstreamer:如何将 decodebin 链接到 encodebin?(错误:未能延迟链接某些垫......)
- delphi - 在Delphi中用泛型替换重载?
- magento2 - 获取错误 Magento2.2.6 中请求的状态更改无效
- java - SonarQube 参数值
- xamarin.forms - 在 Xamarin Forms 中使用仅适用于 iOS、WPF 或 android 的特定组件的方法是什么?
- thorntail - 如何在 Thorntail 中设置 Web 应用程序上下文?