#flutter #flutter-layout #flutter-dependencies #flutter-plugin #localauthentication
#flutter #flutter-layout #flutter-зависимости #flutter-плагин #локальная аутентификация
Вопрос:
Я новичок в 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. Может кто-нибудь найти решение, я собирался спросить то же самое ..?
2. Вы нашли решение для этого?
Ответ №1:
вы можете закрыть приложение, нажав «Отмена» следующим образом
setState(() {
if (isAuthorized) {
_authorizedOrNot = "Authorized";
} else {
_authorizedOrNot = "Not Authorized";
exit(0);
}
});
просто чтобы вы знали, exit(0) нужно отключить dart: io
Комментарии:
1. можете ли вы добавить его в мой код, я не совсем понял