HarmonyOS 鸿蒙Next中Flutter tips Flutter 数据存储 shared_preferences 简介

HarmonyOS 鸿蒙Next中Flutter tips Flutter 数据存储 shared_preferences 简介 它是 Flutter 生态中轻量级本地键值对(Key-Value)存储插件,适用于存储少量简单配置类数据(比如用户登录状态、主题设置、字体大小等),下面我会从核心特性、环境配置、基本使用、注意事项几个方面详细讲解。

一、核心特性说明

  1. 存储类型有限:仅支持存储简单基础数据类型,不支持对象、列表(需手动序列化 / 反序列化),支持的类型包括:
    • String(字符串)
    • int(整数)
    • double(浮点数)
    • bool(布尔值)
    • List<String>(字符串列表)
  2. 持久化存储:数据会持久化到设备本地(iOS 基于 NSUserDefaults,Android 基于 SharedPreferences),应用重启后数据不会丢失。
  3. 轻量级无加密:适合存储少量配置数据,不适合存储敏感信息(如密码、令牌)和大量数据(大量数据推荐 sqflite),且默认无数据加密,如需加密需额外处理。
  4. 异步操作:所有读写操作均为异步(返回 Future),需使用 async/await 处理。

二、前置准备(环境配置)

  1. 添加依赖打开项目的 pubspec.yaml 文件,在 dependencies 节点下添加依赖:
  2. cke_3091.png
  3. 安装依赖保存文件后,执行终端命令安装依赖:
  4. flutter pub get
  5. 导入包在需要使用的 Dart 文件中导入:
  6. import ‘package:shared_preferences/shared_preferences.dart’;

三、核心使用(读写删操作)

shared_preferences 的核心流程是:获取 SharedPreferences 实例 → 通过实例执行读写删操作,所有操作均围绕「键(Key)」展开,通过唯一的 Key 来关联对应的值(Value)。

1. 获取 SharedPreferences 实例

这是所有操作的前提,通过静态方法 SharedPreferences.getInstance() 获取(单例模式,多次调用返回同一个实例):

cke_8660.png

2. 写入数据(保存数据)

使用对应数据类型的 setXxx() 方法(如 setString()setInt()),参数为「键(String 类型,自定义唯一标识)」和「值(对应支持的类型)」,返回值为 bool 类型,表示写入是否成功。

cke_10941.png

3. 读取数据(获取数据)

使用对应数据类型的 getXxx() 方法(如 getString()getInt()),参数为「写入时的唯一 Key」,返回值为对应数据类型,如果 Key 不存在,会返回 null,因此可以设置默认值避免空指针。

cke_13595.png

4. 删除数据(单个 / 全部)

  • 删除单个数据:使用 remove() 方法,参数为「要删除的 Key」。
  • 清空所有数据:使用 clear() 方法(谨慎使用,会删除该应用通过 shared_preferences 存储的所有数据)。

cke_20071.png

四、完整使用示例(在 Widget 中调用)

cke_23463.png

cke_25707.png

五、关键注意事项

  • 不支持复杂数据:无法直接存储对象、Map 等复杂数据,如果需要存储,需先将其序列化为 JSON 字符串(使用 jsonEncode()),读取后再反序列化为对象(使用 jsonDecode())。
  • 异步操作不可忽视:所有 setXxx()getXxx()remove() 方法均为异步,必须使用 async/await 处理,否则可能获取不到正确数据。
  • Key 的唯一性:确保所有存储数据的 Key 唯一,避免不同功能使用相同 Key 导致数据覆盖。
  • 数据容量限制:适合存储 KB 级别的少量数据,不适合存储大量数据(如列表、大文本),大量数据推荐使用 sqflite。
  • 无加密性:存储的数据为明文存储,不要存储敏感信息(如用户密码、token),如需存储敏感数据,可搭配加密插件(如 encrypt)对数据进行加密后再存储。

总结

  • 1、shared_preferences 是 Flutter 轻量级键值对存储插件,适用于保存少量配置类简单数据。
  • 2、核心操作流程:获取实例 → setXxx() 写入 → getXxx() 读取 → remove()/clear() 删除。
  • 3、仅支持基础数据类型,异步操作需用 async/await,不适合存储敏感信息和大量数据。

更多关于HarmonyOS 鸿蒙Next中Flutter tips Flutter 数据存储 shared_preferences 简介的实战教程也可以访问 https://www.itying.com/category-92-b0.html

2 回复

在HarmonyOS鸿蒙Next中,Flutter应用的shared_preferences插件用于持久化存储键值对数据。该插件基于平台原生能力实现,在鸿蒙上通过OHOS接口适配,支持存储基本数据类型如字符串、整型、布尔值等。数据以异步方式读写,需使用await处理Future对象。注意鸿蒙Next环境下插件版本需兼容OHOS API,存储路径遵循鸿蒙沙箱规范。

更多关于HarmonyOS 鸿蒙Next中Flutter tips Flutter 数据存储 shared_preferences 简介的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


这篇关于在HarmonyOS Next中使用Flutter的shared_preferences插件的介绍非常全面和准确。它清晰地阐述了该插件的核心定位——作为轻量级键值对存储方案,适用于保存用户偏好设置等简单数据。

在HarmonyOS Next的Flutter应用开发环境中,shared_preferences的使用方式与您在原生Flutter项目中完全一致。您提到的依赖添加、异步操作、数据类型限制以及注意事项,在HarmonyOS Next平台上同样适用。

需要特别指出的是,在HarmonyOS Next系统上,该插件底层的数据持久化机制会适配鸿蒙的偏好数据库等本地存储能力,但这对于开发者来说是透明的,您无需关心底层实现,可以完全按照标准的Flutter插件API进行开发。

您提供的代码示例和操作流程(获取实例、读写删)是标准实践,可以直接用于HarmonyOS Next的Flutter应用项目。对于复杂数据存储(如大量结构化数据)或敏感信息加密的需求,正如您所建议的,应考虑sqflite或结合加密库的方案。

回到顶部