如何在设备中注册新指纹?

How to register a new fingerprint in the device?

我在 RN 中使用这个库来实现指纹扫描 react-native-fingerprint-scanner 并且它在扫描时工作正常,但我想实现一个为此应用程序注册新指纹的功能。 我绝对无法在互联网上找到与此相关的任何内容。

这是我目前实现的代码:

import React, { Component } from 'react';
import {
    Alert,
    Image,
    Text,
    TouchableOpacity,
    View,
    ViewPropTypes
} from 'react-native';
import FingerprintScanner from 'react-native-fingerprint-scanner';
import PropTypes from 'prop-types';

import ShakingText from './ShakingText.component';
import styles from './FingerprintPopup.component.styles';

class FingerprintPopup extends Component {

    constructor(props) {
        super(props);
        this.state = { errorMessage: undefined };
    }

    componentDidMount() {
        FingerprintScanner
            .authenticate({ onAttempt: this.handleAuthenticationAttempted })
            .then(() => {
                this.props.handlePopupDismissed();
                Alert.alert('Fingerprint Authentication', 'Authenticated successfully');
            })
            .catch((error) => {
                this.setState({ errorMessage: error.message });
                this.description.shake();
            });
    }

    componentWillUnmount() {
        FingerprintScanner.release();
    }

    handleAuthenticationAttempted = (error) => {
        this.setState({ errorMessage: error.message });
        this.description.shake();
    };

    render() {
        const { errorMessage } = this.state;
        const { style, handlePopupDismissed } = this.props;

        return (
            <View style={styles.container}>
                <View style={[styles.contentContainer, style]}>

                    <Image
                        style={styles.logo}
                        source={require('../pictures/finger_print.png')}
                    />

                    <Text style={styles.heading}>
                        Fingerprint{'\n'}Authentication
          </Text>
                    <ShakingText
                        ref={(instance) => { this.description = instance; }}
                        style={styles.description(!!errorMessage)}>
                        {errorMessage || 'Scan your fingerprint on the\ndevice scanner to continue'}
                    </ShakingText>

                    <TouchableOpacity
                        style={styles.buttonContainer}
                        onPress={handlePopupDismissed}
                    >
                        <Text style={styles.buttonText}>
                            BACK TO MAIN
            </Text>
                    </TouchableOpacity>

                </View>
            </View>
        );
    }
}

FingerprintPopup.propTypes = {
    style: ViewPropTypes.style,
    handlePopupDismissed: PropTypes.func.isRequired,
};

export default FingerprintPopup;

编辑:或者至少我想提示用户设置指纹,如果他们还没有在 phone.

出于安全原因,我发现 OS(Android、iOS)的 none 将允许您访问保存凭据的钥匙串. 但是,如果其他应用程序实现了指纹功能,我可以使用用户存储在设备内存中的相同内容来访问我的应用程序。

总而言之,您不能仅为您的应用注册一个新的唯一指纹!