Flutter生物认证插件biometric_authentication的使用
Flutter生物认证插件biometric_authentication的使用
生物认证服务
biometric_authentication
是一个用于将生物认证(人脸、指纹、图案或密码)集成到你的应用中的 Flutter 包。
特性
- 当点击一个提升按钮时,会弹出一个生物认证对话框。然后,通过回调函数,我们可以在成功认证后进行导航。
- 成功通过人脸、指纹或密码/图案验证后,你可以根据手机设置进行导航。
开始使用
导入
import 'package:biometric_authentication/biometric_authentication.dart';
Android 集成
- 插件可以在 SDK 16+ 上构建和运行,但在 SDK 23(Android 6.0)之前,
isDeviceSupported()
总是返回false
。
活动更改
请注意,biometric_authentication
需要使用 FragmentActivity
而不是 Activity
。更新你的应用:
- 如果你直接使用
FlutterActivity
,请将其更改为AndroidManifest.xml
中的FlutterFragmentActivity
。 - 如果你使用的是自定义活动,请更新你的
MainActivity.java
:
import io.flutter.embedding.android.FlutterFragmentActivity;
public class MainActivity extends FlutterFragmentActivity {
// ...
}
或者 MainActivity.kt
:
import io.flutter.embedding.android.FlutterFragmentActivity
class MainActivity: FlutterFragmentActivity() {
// ...
}
使其继承自 FlutterFragmentActivity
。
权限
在项目的 AndroidManifest.xml
文件中更新权限以包含 USE_BIOMETRIC
:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app">
<uses-permission android:name="android.permission.USE_BIOMETRIC"/>
<manifest>
使用
要在 pubspec.yaml
文件中使用此包,请添加以下依赖:
dependencies:
biometric_authentication: ^1.0.5
完整示例
以下是完整的示例代码,展示如何在 Flutter 应用中使用生物认证插件。
import 'package:flutter/material.dart';
import 'package:biometric_authentication/biometric_authentication.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: '生物认证示例',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('生物认证示例'),
),
body: Center(
child: BiometricAuthService(
title: '生物认证',
onAuthentication: (bool isAuthenticated) {
// 处理认证状态
if (isAuthenticated) {
// 认证完成后跳转到下一个屏幕
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => const SecondScreen()),
);
// 认证成功
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('认证成功'),
duration: Duration(seconds: 2),
),
);
} else {
// 认证失败
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('认证失败'),
duration: Duration(seconds: 2),
),
);
}
},
),
),
);
}
}
// 认证成功后显示的屏幕
class SecondScreen extends StatelessWidget {
const SecondScreen({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('第二屏'),
),
// 认证成功后的文本
body: const Center(
child: Text('欢迎来到第二屏!'),
),
);
}
}
更多关于Flutter生物认证插件biometric_authentication的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复