Header

开场

心随朗月高,志与秋霜洁.

前言

  • 信息安全是指保护信息系统和数据免受未经授权的访问、使用、披露、破坏、干扰和泄露的一系列措施和技术。在数字化时代,随着信息技术的迅速发展,信息安全变得愈发重要

  • 身份认证和访问控制:

  • 用强密码和多因素身份验证等措施,确保只有合法用户可以访问系统和敏感信息。控制用户权限、实施最小权限原则并定期审查访问权限是确保访问控制有效的重要手段。

Flutter

特点 详情
跨平台开发 Flutter允许开发人员使用相同的代码库在多个平台上构建应用程序。这意味着可以同时为iOS和Android开发应用,减少了重复开发的工作量。
Widget flutter的UI构建是通过组合不同的小部件来完成的。这些小部件可以是简单的文本或图像,也可以是复杂的布局和交互组件。
响应式UI Flutter采用现代的响应式UI开发模式。通过使用Widget树来构建用户界面,可以实时反应用户输入、数据变化等,并在上进行快速渲染。
自定义UI Flutter提供了丰富的组件和功能,以便开发人员可以轻松地构建自定义的用户界面。通过自定义绘制和动画,可以实现高度个性化的设计和交互效果。
快速开发 Flutter具有热重载功能,可以实时查看代码更改的效果,无需重新编译整个应用程序。这大大加快了开发过程,提高了开发效率。
性能优化 Flutter使用自身的渲染引擎来绘制UI,而不是依赖操作系统提供的原生UI组件。这使得Flutter应用程序在性能方面表现出色,并且能够跨平台保持一致的性能。
强大的工具和社区支持 Flutter提供了丰富的开发工具和文件,包括强大的集成开发环境(如Android Studio和Visual Studio Code)和调试工具。Flutter拥有一个庞大和活跃的开发者社区,可以提供丰富的资源、库和插件。

实现过程

4.1 入口文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

import 'routes/Routes.dart';

void main() => runApp(MyApp());
class MyApp extends StatelessWidget {

@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner:false , //去掉debug图标
// home:Tabs(),
initialRoute: '/', //初始化的时候加载的路由
onGenerateRoute: onGenerateRoute,
localizationsDelegates:const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: const [
Locale('zh','CH'),
Locale('en','US'),
],
);
}
}

4.2 检查当前设备是否支持生物识别

1
2
3
4
5
6
7
8
9
10
11
12
13
ElevatedButton(
child:const Text("检查是否支持生物识别"),
onPressed: () async {
try {
bool canCheckBiometrics =
await localAuth.canCheckBiometrics;
print(canCheckBiometrics);
} catch (e) {
print(e);
}
},
),

4.3 查看支持的生物识别技术

1
2
3
4
5
6
7
8
9
10
11
12
13
const SizedBox(height: 30),
ElevatedButton(
child: Text("获取生物识别技术列表"),
onPressed: () async {
try {
List<BiometricType> availableBiometrics =
await localAuth.getAvailableBiometrics();
print(availableBiometrics);
} catch (e) {
print(e);
}
},
),

4.4 指纹生物识别

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const SizedBox(height: 30),
ElevatedButton(
child:const Text("指纹/生物识别"),
onPressed: () async {
try {
bool didAuthenticate = await localAuth.authenticate(
localizedReason: '扫描指纹进行身份识别',
authMessages: const <AuthMessages>[
AndroidAuthMessages(
cancelButton: '取消',
goToSettingsButton: '去设置',
biometricNotRecognized: '指纹识别失败',
goToSettingsDescription: '请设置指纹.',
biometricHint: '指纹',
biometricSuccess: '指纹识别成功',
signInTitle: '指纹验证',
deviceCredentialsRequiredTitle: '请先录入指纹!',
),
IOSAuthMessages(
cancelButton: '取消',
goToSettingsButton: '去设置',
goToSettingsDescription: '请设置指纹.',
),
],
options: const AuthenticationOptions(
useErrorDialogs: false, stickyAuth: true
));
print(didAuthenticate);
} catch (e) {
print(e);
}
},
)

4.5 需要配置的重要东西

Network

需要在AndroidManifest.xml文件配置这个代码,开启网路权限.

Config

需要在箭头指的方向配置文件代码,才能开启生物识别.

结果

  • Pc端
    resultOne

  • 移动端
    resultTwo

结尾

When your mind says give up,hope whispers one more try.