Flutter缓存管理插件rcache_flutter的使用

发布于 1周前 作者 wuwangju 来自 Flutter

Flutter缓存管理插件rcache_flutter的使用

RCache 是一个轻量级的 Flutter 插件,旨在简化 iOS、macOS 和 Android 平台上的数据存储。它提供了一个直观的 API 来管理通用数据并安全地处理凭据。在 iOS 和 macOS 上,它与 UserDefaults 和 Keychain 集成;在 Android 上,它利用了 SharedPreferences 和 EncryptedSharedPreferences。RCache 简化了持久性存储管理,使得跨平台处理数据变得更加简单和高效。

特性

  • UserDefaults 存储(iOS/macOS):简单的数据存储和检索方法。
  • Keychain 存储(iOS/macOS):用于敏感信息的安全存储。
  • SharedPreferences 存储(Android):易于使用的通用数据存储方法。
  • EncryptedSharedPreferences 存储(Android):用于敏感数据的安全存储。
  • 跨平台支持:统一的 API 支持多个平台。

安装

  1. pubspec.yaml 文件中添加 rcache_flutter 依赖项:
dependencies:
   # 其他依赖项
  rcache_flutter: ^1.1.2
  1. 运行以下命令以获取依赖项:
flutter pub get

使用

你可以查看 DemoApp 示例。

通用存储

保存变量到通用存储
import 'package:rcache_flutter/rcache.dart';
import 'dart:typed_data'; // 对于 Uint8List

// 将 Uint8List 保存到通用存储
RCache.common.saveUint8List(Uint8List.fromList("RCache".codeUnits), key: RCacheKey("uint8List"));

// 将字符串保存到通用存储
RCache.common.saveString("String", key: RCacheKey("string"));

// 将布尔值保存到通用存储
RCache.common.saveBool(true, key: RCacheKey("bool"));

// 将整数保存到通用存储
RCache.common.saveInteger(101, key: RCacheKey("integer"));

// 将数组保存到通用存储
RCache.common.saveArray([101, "string", true], key: RCacheKey("array"));

// 将映射保存到通用存储
RCache.common.saveMap({"bool": true, "integer": 101}, key: RCacheKey("map"));

// 将双精度浮点数保存到通用存储
RCache.common.saveDouble(2.0, key: RCacheKey("double"));
从通用存储读取变量
import 'package:rcache_flutter/rcache.dart';

// 从通用存储读取 Uint8List
RCache.common.readUint8List(key: RCacheKey("uint8List"));

// 从通用存储读取字符串
RCache.common.readString(key: RCacheKey("string"));

// 从通用存储读取布尔值
RCache.common.readBool(key: RCacheKey("bool"));

// 从通用存储读取整数
RCache.common.readInteger(key: RCacheKey("integer"));

// 从通用存储读取数组
RCache.common.readArray(key: RCacheKey("array"));

// 从通用存储读取映射
RCache.common.readMap(key: RCacheKey("map"));

// 从通用存储读取双精度浮点数
RCache.common.readDouble(key: RCacheKey("double"));
从通用存储删除变量
import 'package:rcache_flutter/rcache.dart';

// 从通用存储删除
RCache.common.remove(key: RCacheKey("myKey"));
清除通用存储
import 'package:rcache_flutter/rcache.dart';

// 清除通用存储
RCache.common.clear();

凭据存储

保存变量到凭据存储
import 'package:rcache_flutter/rcache.dart';
import 'dart:typed_data'; // 对于 Uint8List

// 将 Uint8List 保存到凭据存储
RCache.credentials.saveUint8List(Uint8List.fromList("RCache".codeUnits), key: RCacheKey("uint8List"));

// 将字符串保存到凭据存储
RCache.credentials.saveString("String", key: RCacheKey("string"));

// 将布尔值保存到凭据存储
RCache.credentials.saveBool(true, key: RCacheKey("bool"));

// 将整数保存到凭据存储
RCache.credentials.saveInteger(101, key: RCacheKey("integer"));

// 将数组保存到凭据存储
RCache.credentials.saveArray([101, "string", true], key: RCacheKey("array"));

// 将映射保存到凭据存储
RCache.credentials.saveMap({"bool": true, "integer": 101}, key: RCacheKey("map"));

// 将双精度浮点数保存到凭据存储
RCache.credentials.saveDouble(2.0, key: RCacheKey("double"));
从凭据存储读取变量
import 'package:rcache_flutter/rcache.dart';

// 从凭据存储读取 Uint8List
RCache.credentials.readUint8List(key: RCacheKey("uint8List"));

// 从凭据存储读取字符串
RCache.credentials.readString(key: RCacheKey("string"));

// 从凭据存储读取布尔值
RCache.credentials.readBool(key: RCacheKey("bool"));

// 从凭据存储读取整数
RCache.credentials.readInteger(key: RCacheKey("integer"));

// 从凭据存储读取数组
RCache.credentials.readArray(key: RCacheKey("array"));

// 从凭据存储读取映射
RCache.credentials.readMap(key: RCacheKey("map"));

// 从凭据存储读取双精度浮点数
RCache.credentials.readDouble(key: RCacheKey("double"));
从凭据存储删除变量
import 'package:rcache_flutter/rcache.dart';

// 从凭据存储删除
RCache.credentials.remove(key: RCacheKey("myKey"));
清除凭据存储
import 'package:rcache_flutter/rcache.dart';

// 清除凭据存储
RCache.credentials.clear();
清除所有变量从通用存储与凭据存储
import 'package:rcache_flutter/rcache.dart';

// 清除所有变量从通用存储与凭据存储
RCache.clear();
自定义键
import 'package:rcache_flutter/rcache.dart';

class MyRCacheKey {
  static RCacheKey get myKey => RCacheKey("myKey");
}

更多关于Flutter缓存管理插件rcache_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter缓存管理插件rcache_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何使用Flutter缓存管理插件rcache_flutter的代码案例。rcache_flutter是一个用于管理Flutter应用中的缓存数据的插件。它可以帮助你轻松地在内存中缓存数据,从而提高应用的性能和用户体验。

首先,确保你已经在pubspec.yaml文件中添加了rcache_flutter依赖:

dependencies:
  flutter:
    sdk: flutter
  rcache_flutter: ^最新版本号  # 请替换为实际发布的最新版本号

然后运行flutter pub get来获取依赖。

以下是一个简单的代码案例,展示了如何使用rcache_flutter来缓存和检索数据:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'RCache Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final RCache _cache = RCache();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('RCache Flutter Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: () async {
                // 缓存数据
                await _cache.put('key1', 'Hello, RCache!');
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text('Data cached')),
                );
              },
              child: Text('Cache Data'),
            ),
            SizedBox(height: 16),
            ElevatedButton(
              onPressed: () async {
                // 从缓存中检索数据
                String? value = await _cache.get<String>('key1');
                if (value != null) {
                  ScaffoldMessenger.of(context).showSnackBar(
                    SnackBar(content: Text('Cached Data: $value')),
                  );
                } else {
                  ScaffoldMessenger.of(context).showSnackBar(
                    SnackBar(content: Text('No data found in cache')),
                  );
                }
              },
              child: Text('Retrieve Data'),
            ),
            SizedBox(height: 16),
            ElevatedButton(
              onPressed: () async {
                // 从缓存中删除数据
                bool success = await _cache.delete('key1');
                if (success) {
                  ScaffoldMessenger.of(context).showSnackBar(
                    SnackBar(content: Text('Data deleted from cache')),
                  );
                } else {
                  ScaffoldMessenger.of(context).showSnackBar(
                    SnackBar(content: Text('Failed to delete data')),
                  );
                }
              },
              child: Text('Delete Data'),
            ),
          ],
        ),
      ),
    );
  }
}

在这个例子中,我们创建了一个简单的Flutter应用,它有三个按钮:

  1. Cache Data:将数据'Hello, RCache!'缓存到键'key1'下。
  2. Retrieve Data:从缓存中检索键'key1'对应的数据,并在SnackBar中显示。
  3. Delete Data:从缓存中删除键'key1'对应的数据。

RCache类提供了简单的API来管理缓存数据,包括putgetdelete方法。你可以根据需要扩展这个示例,以在你的应用中实现更复杂的缓存管理逻辑。

请确保你查阅了rcache_flutter的官方文档,以获取更多关于配置和使用该插件的详细信息。

回到顶部