如何在本地身份验证中单击取消以及当最大尝试次数超过颤振时关闭应用程序
Posted
技术标签:
【中文标题】如何在本地身份验证中单击取消以及当最大尝试次数超过颤振时关闭应用程序【英文标题】:how to close the application on clicking cancel in local auth and also when maximum tries exceeds in flutter 【发布时间】:2021-01-28 07:13:32 【问题描述】:我是 Flutter 的新手。我想使用本地生物识别技术创建一个应用程序,我使用了本地身份验证,我需要帮助
-
点击local_auth中的取消按钮关闭应用程序,
在完成最大尝试次数后关闭应用程序。
暂停后台直到身份验证完成
我的代码是
import 'dart:async';
import 'package:LogInSignIn.dart';
import 'package:flutter/material.dart';
import 'package:cashhub/homescreen.dart';
import 'package:local_auth/local_auth.dart';
import 'package:flutter/services.dart';
void main()
setupLocator();
runApp(new MaterialApp(
debugShowCheckedModeBanner: false,
home: new SplashScreen(),
routes: <String, WidgetBuilder>
'/HomeScreen': (BuildContext context) => new LogInSignIn(),
,
));
class SplashScreen extends StatefulWidget
@override
_SplashScreenState createState() => new _SplashScreenState();
class _SplashScreenState extends State<SplashScreen>
//final LocalAuthenticationService _localAuth = locator<LocalAuthenticationService>();
final LocalAuthentication auth = LocalAuthentication();
bool _canCheckBiometrics;
List<BiometricType> _availableBiometrics;
String _authorized = 'Not Authorized';
bool _isAuthenticating = false;
startTime() async
var _duration = new Duration(seconds: 4);
return new Timer(_duration, navigationPage);
Future<void> _authenticate() async
bool authenticated = false;
try
setState(()
_isAuthenticating = true;
_authorized = 'Authenticating';
);
authenticated = await auth.authenticateWithBiometrics(
localizedReason: 'Scan your fingerprint to authenticate',
useErrorDialogs: true,
stickyAuth: true);
setState(()
_isAuthenticating = false;
_authorized = 'Authenticating';
);
on PlatformException catch (e)
print(e);
if (!mounted) return;
final String message = authenticated ? 'Authorized' : 'Not Authorized';
// if( message == "Not Authorized")
// SystemNavigator.pop();
//
setState(()
_authorized = message;
);
void navigationPage()
Navigator.of(context).pushReplacementNamed('/HomeScreen');
@override
void initState()
_authenticate();
//autho();
super.initState();
startTime();
@override
Widget build(BuildContext context)
return new Scaffold(
body: new Center(
child: new Image.asset('assets/splashlogo.png',
),
),
);
任何人请帮我解决这 3 个问题..
【问题讨论】:
谁能找到解决方案,我正要问同样的问题..? 【参考方案1】:您可以像这样通过取消点击来关闭应用程序
setState(()
if (isAuthorized)
_authorizedOrNot = "Authorized";
else
_authorizedOrNot = "Not Authorized";
exit(0);
);
只是让你知道 exit(0) 需要导入 dart:io
【讨论】:
你能把我的代码加进去吗?我不清楚以上是关于如何在本地身份验证中单击取消以及当最大尝试次数超过颤振时关闭应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Apache 中的基本 HTTP 身份验证在我取消登录时显示文件
Azure Cloud 上的表单身份验证/配置文件速度慢,本地正常