我正尝试使用local_auth
包包括生物识别身份验证。这在应用程序启动时使用。指纹用于确定用户是否是电话的所有者。如果确认,他们将被带到主页。下面的代码可以工作,但我想在下面的代码中应用的是MVC
或design pattern
。有人能给我指路吗?
class LoginOptionState extends State<LoginOption> {
final LocalAuthentication auth = LocalAuthentication();
String _authorized = 'Not Authorized';
@override
Widget build(BuildContext context) {
return Scaffold(
body: new Container(
child: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
new Column(
children: <Widget>[
Text("Touch ID"),
SizedBox(height: 10),
GestureDetector(
child: Image.asset(
"assets/",
),
onTap: _authenticate),
],
),
],
),
)));
}
Future<void> _authenticate() async {
bool authenticated = false;
try {
authenticated = await auth.authenticateWithBiometrics(
localizedReason: 'Scan your fingerprint to authenticate',
useErrorDialogs: true,
stickyAuth: false);
} on PlatformException catch (e) {
print(e);
}
if (!mounted) return;
setState(() {
_authorized = authenticated
? Navigator.pushNamed(context, homePageViewRoute)
: 'Not Authorized';
});
}
}
字符串
3条答案
按热度按时间kgqe7b3p1#
使用Greg佩里的优秀库mvc_pattern。链接上提供了快速入门示例代码和说明。
下面是一个经典计数器应用程序的快速入门示例,来自上面的链接:
视图:
字符串
控制器类别:
型
现在对上面的代码进行重构,添加一个模型:
型
最后是模型类:
型
但是,请确保将flutter升级到1.13.0版。至少对我来说,我在较低版本中遇到了几个构建错误。
nwo49xxi2#
Karee是一套在Flutter中实现MVC设计的工具。它可以帮助您管理您的控制器,您的路线,您的屏幕等。参考karee github wiki获取文档。
可以使用Karee。支持Flutter 2.X.X
要安装运行
npm install -g karee
然后karee create
在基于Karee创建一个新的Flutter项目后,您可以添加新的控制器样本代码
创建à新控制器
字符串
在lib/app/controllers/auth/AuthenticationController下生成的文件
型
添加路线
型
在屏幕中使用
型
mgdq6dx13#
flutter 3.10.6 +版本型号/counter_model.dart
字符串
controllers/counter_controller.dart
型
views/counter_view.dart
型
在一个改变在主。dart
型
完整的博客是https://medium.com/@raviyatechnical/flutter-state-management-mvc-pattern-example-for-building-a-counter-app-4a43aa6a1e6