Flutter安全存储插件vault的使用
Flutter安全存储插件vault的使用
Vault
是一个用于加密存储整数、双精度浮点数、字符串和布尔值的库。Vault
将其内容存储在持久化存储中。
使用方法
首先,需要导入 vault
包:
import 'package:vault/vault.dart' as vault;
保存数据
你可以通过传递一个 key
来保存一个 value
:
vault.save(key, value);
获取数据
可以通过传递一个 key
来获取一个 value
:
vault.get(key);
监听数据变化
可以通过传递一个 key
来监听某个 value
的实时变化:
vault.listen(key);
删除数据
可以通过传递一个 key
来删除一个 value
:
vault.delete(key);
删除所有数据
可以删除 vault
中存储的所有值:
vault.deleteAll();
完整示例
以下是一个完整的示例代码,展示了如何使用 Vault
插件进行数据的保存、获取、监听和删除操作。
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:vault/vault.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// 这个小部件是你的应用的根
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final saveController = TextEditingController();
final saveValueController = TextEditingController();
final getController = TextEditingController();
final streamController = TextEditingController();
String getValue = "";
String streamValue = "";
final vault = Vault();
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Vault"),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text("Get", style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold), textAlign: TextAlign.left),
Padding(
padding: EdgeInsets.symmetric(horizontal: 18.0),
child: TextField(
decoration: InputDecoration(hintText: "key"),
controller: getController,
),
),
Text('value: $getValue'),
TextButton(onPressed: () async {
final value = await vault.get(getController.text);
setState(() {
getValue = value.toString();
});
}, child: Text("Get")),
Divider(),
Text("Stream", style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold), textAlign: TextAlign.left),
StreamBuilder(
stream: vault.listen(streamValue),
builder: (context, snapshot) {
return Text("value: ${snapshot.data.toString()}");
},
),
Padding(
padding: EdgeInsets.symmetric(horizontal: 18.0),
child: TextField(
decoration: InputDecoration(hintText: "key"),
controller: streamController,
),
),
TextButton(onPressed: () {
setState(() {
streamValue = streamController.text;
streamController.clear();
});
}, child: Text("Stream")),
Divider(),
Text("Save", style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold), textAlign: TextAlign.left),
Padding(
padding: EdgeInsets.symmetric(horizontal: 18.0),
child: TextField(
decoration: InputDecoration(hintText: "key"),
controller: saveController,
),
),
Padding(
padding: EdgeInsets.symmetric(horizontal: 18.0),
child: TextField(
decoration: InputDecoration(hintText: "value"),
controller: saveValueController,
),
),
TextButton(onPressed: () {
vault.save(saveController.text, saveValueController.text);
saveValueController.clear();
saveController.clear();
}, child: Text("Save")),
],
),
);
}
}
更多关于Flutter安全存储插件vault的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复