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必备技能:轻松掌握本地存储与数据库优化技巧!
178 0
|
存储 移动开发 Java
Flutter(二十七)——shared_preferences本地存储
Flutter(二十七)——shared_preferences本地存储
517 2
Flutter(二十七)——shared_preferences本地存储
|
存储 Dart Android开发
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
433 0
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
|
存储 Android开发 iOS开发
Flutter 本地存储之shared_preferences
Flutter 本地存储之shared_preferences
173 0
|
Dart
Flutter:删除所有已保存的shared_preferences首选项
dart - Flutter:删除所有已保存的shared_preferences首选项 想在用户点击注销时删除所有保存的shared_preferences首选项。有什么方法可以一次性完成而不删除一个吗?
228 0
|
存储
flutter中本地存储shared_preferences的使用·
首先在 pubspec.yaml 文件中添加 shared_preferences 引用并 Packages get
231 0
|
1月前
|
Android开发 iOS开发 容器
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
|
21天前
|
开发者
鸿蒙Flutter实战:07-混合开发
鸿蒙Flutter混合开发支持两种模式:1) 基于har包,便于主项目开发者无需关心Flutter细节,但不支持热重载;2) 基于源码依赖,利于代码维护与热重载,需配置Flutter环境。项目结构包括AppScope、flutter_module等目录,适用于不同开发需求。
57 3
|
6天前
|
传感器 开发框架 物联网
鸿蒙next选择 Flutter 开发跨平台应用的原因
鸿蒙(HarmonyOS)是华为推出的一款旨在实现多设备无缝连接的操作系统。为了实现这一目标,鸿蒙选择了 Flutter 作为主要的跨平台应用开发框架。Flutter 的跨平台能力、高性能、丰富的生态支持和与鸿蒙系统的良好兼容性,使其成为理想的选择。通过 Flutter,开发者可以高效地构建和部署多平台应用,推动鸿蒙生态的快速发展。
92 0
|
8天前
|
Dart 安全 UED
Flutter&鸿蒙next中的表单封装:提升开发效率与用户体验
在移动应用开发中,表单是用户与应用交互的重要界面。本文介绍了如何在Flutter中封装表单,以提升开发效率和用户体验。通过代码复用、集中管理和一致性的优势,封装表单组件可以简化开发流程。文章详细讲解了Flutter表单的基础、封装方法和表单验证技巧,帮助开发者构建健壮且用户友好的应用。
55 0