Package地址:https://pub.dev/packages/shared_preferences
目录
- shared_preferences是什么?
- 如何使用 shared_preferences ?
- shared_preferences有哪些常用的API?
一、shared_preferences是什么?
- 1.1、shared_preferences是Flutter社区开发的一个本地数据存取插件
- 1.2、shared_preferences的特征如下
- 简单的,异步的,持久化的key-value存储系统
- 在Android上它是基于 SharePreferences的
- 在iOS上它是基于 NSUserDefaults
二、如何使用 shared_preferences
- 2.1、首先在 pubspec.yaml文件中添加,然后运行
flutter pub get
dependencies: shared_preferences: ^2.0.7
- 在使用的地方导入:
import 'package:shared_preferences/shared_preferences.dart';
- 2.2、Sharedpreferences 基本用法提示:如果在使用的时候报错:
[VERBOSE-2:ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)
解决方案:如果您使用的是shared_preferences 0.2.4及更高版本,可直接在flutter项目的main方法中添加以下内容
SharedPreferences.setMockInitialValues({});
- <1>、存储和读取基本数据类型,下面以String为例,其他的类型不做展示
存储
saveData() async { SharedPreferences prefs = await SharedPreferences.getInstance(); int counter = 1; bool result = await prefs.setInt('counter', counter); print("存储的结果:$result"); }
- 读取
readData() async { SharedPreferences prefs = await SharedPreferences.getInstance(); final counter = await prefs.getInt('counter' ?? 0); print("取出数据:$counter"); }
- 删除数据
deleteData() async { SharedPreferences prefs = await SharedPreferences.getInstance(); final result = await prefs.remove("counter"); print("删除的结果:$result"); }
- <2>、清空整个缓存
clear() async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.clear(); ////清空缓存 }
三、shared_preferences有哪些常用的API?
- 3.1、存储相关
Future<bool> setBool(String key, bool value) => _setValue('Bool', key, value); Future<bool> setInt(String key, int value) => _setValue('Int', key, value); Future<bool> setDouble(String key, double value) => _setValue('Double', key, value); Future<bool> setString(String key, String value) => _setValue('String', key, value); Future<bool> setStringList(String key, List<String> value) => _setValue('StringList', key, value);
- 3.2、读取相关
Object? get(String key) => _preferenceCache[key]; bool? getBool(String key) => _preferenceCache[key] as bool?; int? getInt(String key) => _preferenceCache[key] as int?; double? getDouble(String key) => _preferenceCache[key] as double?; Set<String> getKeys() => Set<String>.from(_preferenceCache.keys); String? getString(String key) => _preferenceCache[key] as String?; List<String>? getStringList(String key) {......} toString();
- 3.3、删除相关
remove(String key) {......} clear() {......}