Flutter本地数据存储插件ume_kit_shared_preferences的使用

Flutter本地数据存储插件ume_kit_shared_preferences的使用

ume_kit_shared_preferences

基于 UME 下的 shared_preferences 插件,可以实时查看、修改或删除所有 shared_preferences 缓存的 key 的值。


接入 UME Example

只需将整个 ume_kit_shared_preferences 放入 kit 中本地导入,并在 pubspec.yaml 文件中进行配置:

dependencies:
  ume_kit_shared_preferences:
    path: ../kits/ume_kit_shared_preferences

main.dart 文件中新增以下代码,SharedPreferencesInspector 模块即可被带入 UME 主模块:

import 'package:ume/ume.dart';
import 'package:ume_kit_shared_preferences/shared_preferences_inspector.dart';

void main() {
  // 初始化 UME 并注册 SharedPreferencesInspector 模块
  UME().init(
    appTitle: 'UME Example',
    kits: [
      SharedPreferencesInspector(), // 注册 SharedPreferencesInspector 模块
    ],
  );

  runApp(MyApp());
}

不接入 Example 运行

如果不接入 UME,本项目自带一个 demo/main.dart 文件可以直接运行,详情可以参考 screenshots 文件夹下的录制视频。实测支持 iOS、Android 和 macOS。理论上,所有 shared_preferences 插件支持的平台都支持,但因手头没有 Linux 和 Windows 平台设备,因此无法保证这些平台的兼容性。


完整示例 Demo

以下是一个完整的示例代码,展示如何使用 ume_kit_shared_preferences 插件:

// main.dart
import 'package:flutter/material.dart';
import 'package:ume/ume.dart';
import 'package:ume_kit_shared_preferences/shared_preferences_inspector.dart';

void main() {
  // 初始化 UME 并注册 SharedPreferencesInspector 模块
  UME().init(
    appTitle: 'UME Example',
    kits: [
      SharedPreferencesInspector(), // 注册 SharedPreferencesInspector 模块
    ],
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('UME Example')),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              // 使用 shared_preferences 插件保存数据
              final prefs = await SharedPreferences.getInstance();
              await prefs.setString('name', 'John Doe');
              await prefs.setInt('age', 25);
              print('Data saved successfully!');
            },
            child: Text('Save Data'),
          ),
        ),
      ),
    );
  }
}

更多关于Flutter本地数据存储插件ume_kit_shared_preferences的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter本地数据存储插件ume_kit_shared_preferences的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


ume_kit_shared_preferences 是一个用于 Flutter 应用的本地数据存储插件,它基于 shared_preferences 封装,提供了更加便捷的方式来存储和读取简单的键值对数据。shared_preferences 是 Flutter 官方推荐的一个轻量级数据存储解决方案,适用于存储少量的数据,如用户设置、应用配置等。

下面是如何在 Flutter 项目中使用 ume_kit_shared_preferences 插件的步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 ume_kit_shared_preferences 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  ume_kit_shared_preferences: ^1.0.0  # 请查看最新版本

然后,运行 flutter pub get 来安装依赖。

2. 初始化插件

在你的 Flutter 应用中,通常需要在 main.dart 文件中初始化 ume_kit_shared_preferences 插件。你可以通过 WidgetsFlutterBinding.ensureInitialized() 来确保插件在使用前已经初始化。

import 'package:flutter/material.dart';
import 'package:ume_kit_shared_preferences/ume_kit_shared_preferences.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await UmeKitSharedPreferences.init();
  runApp(MyApp());
}

3. 存储数据

你可以使用 UmeKitSharedPreferences 来存储各种类型的数据,如 intdoubleboolStringList<String>

void saveData() async {
  await UmeKitSharedPreferences.setInt('age', 25);
  await UmeKitSharedPreferences.setDouble('height', 1.75);
  await UmeKitSharedPreferences.setBool('isStudent', true);
  await UmeKitSharedPreferences.setString('name', 'John Doe');
  await UmeKitSharedPreferences.setStringList('hobbies', ['Reading', 'Swimming']);
}

4. 读取数据

你可以通过键来读取存储的数据:

void readData() async {
  int age = await UmeKitSharedPreferences.getInt('age') ?? 0;
  double height = await UmeKitSharedPreferences.getDouble('height') ?? 0.0;
  bool isStudent = await UmeKitSharedPreferences.getBool('isStudent') ?? false;
  String name = await UmeKitSharedPreferences.getString('name') ?? '';
  List<String> hobbies = await UmeKitSharedPreferences.getStringList('hobbies') ?? [];

  print('Age: $age');
  print('Height: $height');
  print('Is Student: $isStudent');
  print('Name: $name');
  print('Hobbies: $hobbies');
}

5. 删除数据

你可以通过键来删除存储的数据:

void deleteData() async {
  await UmeKitSharedPreferences.remove('age');
}

6. 清除所有数据

你可以使用 clear() 方法来清除所有存储的数据:

void clearData() async {
  await UmeKitSharedPreferences.clear();
}

7. 使用示例

以下是一个完整的示例,展示了如何使用 ume_kit_shared_preferences 插件来存储、读取和删除数据:

import 'package:flutter/material.dart';
import 'package:ume_kit_shared_preferences/ume_kit_shared_preferences.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await UmeKitSharedPreferences.init();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('SharedPreferences Example')),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: saveData,
                child: Text('Save Data'),
              ),
              ElevatedButton(
                onPressed: readData,
                child: Text('Read Data'),
              ),
              ElevatedButton(
                onPressed: deleteData,
                child: Text('Delete Data'),
              ),
              ElevatedButton(
                onPressed: clearData,
                child: Text('Clear All Data'),
              ),
            ],
          ),
        ),
      ),
    );
  }

  void saveData() async {
    await UmeKitSharedPreferences.setInt('age', 25);
    await UmeKitSharedPreferences.setDouble('height', 1.75);
    await UmeKitSharedPreferences.setBool('isStudent', true);
    await UmeKitSharedPreferences.setString('name', 'John Doe');
    await UmeKitSharedPreferences.setStringList('hobbies', ['Reading', 'Swimming']);
    print('Data saved');
  }

  void readData() async {
    int age = await UmeKitSharedPreferences.getInt('age') ?? 0;
    double height = await UmeKitSharedPreferences.getDouble('height') ?? 0.0;
    bool isStudent = await UmeKitSharedPreferences.getBool('isStudent') ?? false;
    String name = await UmeKitSharedPreferences.getString('name') ?? '';
    List<String> hobbies = await UmeKitSharedPreferences.getStringList('hobbies') ?? [];

    print('Age: $age');
    print('Height: $height');
    print('Is Student: $isStudent');
    print('Name: $name');
    print('Hobbies: $hobbies');
  }

  void deleteData() async {
    await UmeKitSharedPreferences.remove('age');
    print('Age deleted');
  }

  void clearData() async {
    await UmeKitSharedPreferences.clear();
    print('All data cleared');
  }
}
回到顶部