flutter 本地存储 mac
时间: 2023-10-30 11:06:43 浏览: 165
在Flutter中,你可以使用shared_preferences插件来实现本地存储。对于macOS平台,shared_preferences会将数据保存到本地系统文件库中的FileSystem中。你可以按照以下步骤来使用shared_preferences进行本地存储:
1. 首先,在你的Flutter项目中添加shared_preferences插件的依赖。
2. 然后,在你的Dart文件中导入shared_preferences库,通过SharedPreferences.getInstance()方法获取SharedPreferences实例。
3. 通过SharedPreferences实例,你可以使用setString()、setInt()、setDouble()、setBool()等方法将数据存储到本地。
4. 使用getString()、getInt()、getDouble()、getBool()等方法从本地获取存储的数据。
5. 如果你想要清除本地存储的数据,可以使用clear()方法。
以下是一个示例代码,展示了如何使用shared_preferences来实现本地存储:
```dart
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
// 获取SharedPreferences实例
Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
late SharedPreferences _sharedPreferences;
@override
void initState() {
super.initState();
_initSharedPreferences();
}
// 初始化SharedPreferences实例
void _initSharedPreferences() async {
_sharedPreferences = await _prefs;
}
// 存储数据到本地
void _saveData(String key, String value) async {
await _sharedPreferences.setString(key, value);
}
// 从本地获取数据
String _getData(String key) {
return _sharedPreferences.getString(key) ?? '';
}
// 清除本地存储的数据
void _clearData() async {
await _sharedPreferences.clear();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter本地存储'), ),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () {
_saveData('name', 'John');
},
child: Text('存储数据'),
),
ElevatedButton(
onPressed: () {
String name = _getData('name');
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('从本地获取的数据'),
content: Text(name),
actions: <Widget>[
TextButton(
child: Text('关闭'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
},
child: Text('获取数据'),
),
ElevatedButton(
onPressed: () {
_clearData();
},
child: Text('清除数据'),
),
],
), ),
);
}
}
void main() {
runApp(MaterialApp(
home: MyHomePage(),
));
}
```
阅读全文