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必备技能:轻松掌握本地存储与数据库优化技巧!
187 0
|
存储 移动开发 Java
Flutter(二十七)——shared_preferences本地存储
Flutter(二十七)——shared_preferences本地存储
541 2
|
存储 Dart Android开发
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
441 0
【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )
|
存储 Android开发 iOS开发
Flutter 本地存储之shared_preferences
Flutter 本地存储之shared_preferences
184 0
|
Dart
Flutter:删除所有已保存的shared_preferences首选项
dart - Flutter:删除所有已保存的shared_preferences首选项 想在用户点击注销时删除所有保存的shared_preferences首选项。有什么方法可以一次性完成而不删除一个吗?
233 0
|
存储
flutter中本地存储shared_preferences的使用·
首先在 pubspec.yaml 文件中添加 shared_preferences 引用并 Packages get
238 0
|
3月前
|
Android开发 iOS开发 容器
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
|
2月前
|
开发框架 Dart 前端开发
Flutter 是谷歌推出的一款高效跨平台移动应用开发框架,使用 Dart 语言,具备快速开发、跨平台支持、高性能、热重载及美观界面等特点。
Flutter 是谷歌推出的一款高效跨平台移动应用开发框架,使用 Dart 语言,具备快速开发、跨平台支持、高性能、热重载及美观界面等特点。本文从 Flutter 简介、特点、开发环境搭建、应用架构、组件详解、路由管理、状态管理、与原生代码交互、性能优化、应用发布与部署及未来趋势等方面,全面解析 Flutter 技术,助你掌握这一前沿开发工具。
67 8
|
2月前
|
存储 JavaScript 前端开发
在Flutter开发中,状态管理至关重要。随着应用复杂度的提升,有效管理状态成为挑战
在Flutter开发中,状态管理至关重要。随着应用复杂度的提升,有效管理状态成为挑战。本文介绍了几种常用的状态管理框架,如Provider和Redux,分析了它们的基本原理、优缺点及适用场景,并提供了选择框架的建议和使用实例,旨在帮助开发者提高开发效率和应用性能。
39 4
|
2月前
|
传感器 前端开发 Android开发
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求。本文深入探讨了插件开发的基本概念、流程、集成方法、常见类型及开发实例,如相机插件的开发步骤,同时强调了版本兼容性、性能优化等注意事项,并展望了插件开发的未来趋势。
45 2