Flutter安全存储插件flutter_secure_storage_x_macos的使用

Flutter安全存储插件flutter_secure_storage_x_macos的使用

该插件是flutter_secure_storage_x在macOS平台上的实现。

使用

这个包是经过官方推荐的,这意味着你可以像使用其他普通的插件一样直接使用flutter_secure_storage_。当你这样做的时候,此包会自动包含在你的应用中。

完整示例Demo

以下是一个完整的示例,演示如何在Flutter应用中使用flutter_secure_storage_x_macos插件来安全地存储和检索数据。

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SecureStorageScreen(),
    );
  }
}

class SecureStorageScreen extends StatefulWidget {
  @override
  _SecureStorageScreenState createState() => _SecureStorageScreenState();
}

class _SecureStorageScreenState extends State<SecureStorageScreen> {
  final storage = const FlutterSecureStorage();

  // 存储数据
  Future<void> _writeData() async {
    await storage.write(key: 'username', value: 'exampleUser');
    print('Data written successfully.');
  }

  // 读取数据
  Future<String?> _readData() async {
    String? value = await storage.read(key: 'username');
    print('Retrieved data: $value');
    return value;
  }

  // 删除数据
  Future<void> _deleteData() async {
    await storage.delete(key: 'username');
    print('Data deleted successfully.');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Secure Storage Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: _writeData,
              child: Text('Write Data'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () async {
                await _readData();
              },
              child: Text('Read Data'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _deleteData,
              child: Text('Delete Data'),
            ),
          ],
        ),
      ),
    );
  }
}

说明

  1. 导入库:

    import 'package:flutter_secure_storage/flutter_secure_storage.dart';
    

    这行代码导入了flutter_secure_storage库,使我们能够使用其提供的功能。

  2. 创建存储实例:

    final storage = const FlutterSecureStorage();
    

    创建一个FlutterSecureStorage实例,用于后续的数据操作。

  3. 写入数据:

    Future<void> _writeData() async {
      await storage.write(key: 'username', value: 'exampleUser');
      print('Data written successfully.');
    }
    

    使用storage.write()方法将数据保存到安全存储中。key是标识符,value是要存储的数据。

  4. 读取数据:

    Future<String?> _readData() async {
      String? value = await storage.read(key: 'username');
      print('Retrieved data: $value');
      return value;
    }
    

    使用storage.read()方法从安全存储中读取数据。key是之前保存数据时使用的标识符。

  5. 删除数据:

    Future<void> _deleteData() async {
      await storage.delete(key: 'username');
      print('Data deleted successfully.');
    }
    

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

1 回复

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


flutter_secure_storage_x_macosflutter_secure_storage 插件的一个扩展,专门用于在 macOS 平台上提供安全的存储解决方案。它与 flutter_secure_storage 类似,但针对 macOS 进行了优化。以下是使用 flutter_secure_storage_x_macos 的基本指南。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 flutter_secure_storage_x_macos 依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_secure_storage: ^5.0.2
  flutter_secure_storage_x_macos: ^1.0.2

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

2. 导入包

在你的 Dart 文件中导入 flutter_secure_storageflutter_secure_storage_x_macos

import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:flutter_secure_storage_x_macos/flutter_secure_storage_x_macos.dart';

3. 初始化存储

创建一个 FlutterSecureStorage 实例。flutter_secure_storage_x_macos 会自动处理 macOS 平台上的存储。

final storage = FlutterSecureStorage(
  macOSOptions: MacOSOptions(
    serviceName: 'your_service_name',
    // 其他可选配置
  ),
);

4. 读写数据

你可以使用 FlutterSecureStorage 提供的 API 来存储和读取数据。

存储数据

await storage.write(key: 'my_key', value: 'my_value');

读取数据

String? value = await storage.read(key: 'my_key');
print(value); // 输出: my_value

删除数据

await storage.delete(key: 'my_key');

删除所有数据

await storage.deleteAll();

5. 处理不同平台

flutter_secure_storage 会自动处理不同平台的实现,但在某些情况下你可能需要为不同平台进行特殊配置。例如,MacOSOptions 允许你为 macOS 配置特定的选项,如 serviceName

6. 注意事项

  • Keychain Access: 在 macOS 上,数据存储在 Keychain 中。你可以使用 macOS 的 Keychain Access 应用来查看和管理存储的数据。
  • 加密: 数据在存储时会被自动加密,确保安全性。

7. 示例代码

以下是一个完整的示例,展示如何在 macOS 上使用 flutter_secure_storage_x_macos

import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:flutter_secure_storage_x_macos/flutter_secure_storage_x_macos.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  final storage = FlutterSecureStorage(
    macOSOptions: MacOSOptions(
      serviceName: 'my_app',
    ),
  );

  // 存储数据
  await storage.write(key: 'example_key', value: 'Hello, macOS!');

  // 读取数据
  String? value = await storage.read(key: 'example_key');
  print('Stored value: $value');

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Secure Storage macOS Example'),
        ),
        body: Center(
          child: Text('Check console for stored value.'),
        ),
      ),
    );
  }
}
回到顶部