Flutter-本地存储shared_preferences

简介: Flutter-本地存储shared_preferences

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、存储相关


image.png


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() {......}


目录
相关文章
|
存储 JSON 数据库
Flutter必备技能:轻松掌握本地存储与数据库优化技巧!
Flutter必备技能:轻松掌握本地存储与数据库优化技巧!
179 0
|
存储 移动开发 Java
Flutter(二十七)——shared_preferences本地存储
Flutter(二十七)——shared_preferences本地存储
528 2
Flutter(二十七)——shared_preferences本地存储
|
存储 Dart Android开发
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
438 0
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
|
存储 Android开发 iOS开发
Flutter 本地存储之shared_preferences
Flutter 本地存储之shared_preferences
176 0
|
Dart
Flutter:删除所有已保存的shared_preferences首选项
dart - Flutter:删除所有已保存的shared_preferences首选项 想在用户点击注销时删除所有保存的shared_preferences首选项。有什么方法可以一次性完成而不删除一个吗?
231 0
|
存储
flutter中本地存储shared_preferences的使用·
首先在 pubspec.yaml 文件中添加 shared_preferences 引用并 Packages get
232 0
|
存储 Dart Android开发
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
294 0
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
|
2月前
|
Android开发 iOS开发 容器
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
|
8天前
|
传感器 前端开发 Android开发
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求。本文深入探讨了插件开发的基本概念、流程、集成方法、常见类型及开发实例,如相机插件的开发步骤,同时强调了版本兼容性、性能优化等注意事项,并展望了插件开发的未来趋势。
22 2
|
2月前
|
开发者
鸿蒙Flutter实战:07-混合开发
鸿蒙Flutter混合开发支持两种模式:1) 基于har包,便于主项目开发者无需关心Flutter细节,但不支持热重载;2) 基于源码依赖,利于代码维护与热重载,需配置Flutter环境。项目结构包括AppScope、flutter_module等目录,适用于不同开发需求。
80 3