flutter-----指纹识别
指纹识别前言技术栈实例代码分析引入依赖编写简单的指纹识别小实例设置配置项androidIOS总结前言最近在家里也比较闲,所以就是研究研究自己没有涉及到的功能。今天就是在这里跟大家分享一下Flutter完成指纹识别功能技术栈local_auth: ^0.3.0实例代码分析引入依赖编写简单的指纹识别小实例import 'dart:async';import 'packag...
·
前言
最近在家里也比较闲,所以就是研究研究自己没有涉及到的功能。今天就是在这里跟大家分享一下Flutter完成指纹识别功能
技术栈
local_auth: ^0.3.0
实例代码分析
引入依赖
编写简单的指纹识别小实例
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:local_auth/local_auth.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
/// 本地认证框架
final LocalAuthentication auth = LocalAuthentication();
/// 识别结果
String _authorized = '验证失败';
/// 生物识别
Future<Null> _authenticate() async {
bool authenticated = false;
try {
authenticated = await auth.authenticateWithBiometrics(
localizedReason: '扫描指纹进行身份验证',
useErrorDialogs: true,
stickyAuth: false);
} on PlatformException catch (e) {
print(e);
}
if (!mounted) return;
setState(() {
_authorized = authenticated ? '验证通过' : '验证失败';
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('插件的示例应用程序'),
),
body: ConstrainedBox(
constraints: const BoxConstraints.expand(),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Text('状态: $_authorized\n'),
RaisedButton(
child: const Text('验证'),
onPressed: _authenticate,
)
])),
));
}
}
设置配置项
android
首先,我们必须更新AndoridManifest.xml文件以包含USE_FINGERPRINT权限,如下所示
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.demo">
<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
</manifest>
其次到build.gradle中,targetSdkVersion修改成如下所示
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.demo"
minSdkVersion 16
targetSdkVersion 27
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
IOS
local_auth插件适用于TouchID和FaceID。但是,对于后者,我们需要将以下键值对添加到info.plist文件中
...
<key>NSFaceIDUsageDescription</key>
<string>Why is my app authenticating using face id?</string>
...
总结
希望这篇博客可以帮助到有需要的朋友
更多推荐
已为社区贡献1条内容
所有评论(0)