Flutter调试工具插件shared_preferences_debugger的使用

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

Flutter调试工具插件shared_preferences_debugger的使用

shared_preferences_debugger

此包旨在简化shared_preferences插件包的调试工作。通过使用这个包,你可以轻松地显示复制到剪贴板以及删除存储在shared_preferences中的数据。

Sample

使用方法

只需在需要的地方使用SharedPreferencesDebugPage()即可。SharedPreferencesDebugPage()Scaffold的包装器,因此建议像下面的代码一样作为新屏幕使用。

IconButton(
  icon: const Icon(Icons.bug_report),
  onPressed: () {
    Navigator.of(context).push<void>(
      MaterialPageRoute(
        builder: (context) => const SharedPreferencesDebugPage(),
      ),
    );
  },
),

示例Demo

以下是一个完整的示例demo,展示了如何使用shared_preferences_debugger

import 'dart:math';

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:shared_preferences_debugger/shared_preferences_debugger.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    const title = 'Shared preferences debugger';
    return MaterialApp(
      title: title,
      theme: ThemeData.from(
        useMaterial3: true,
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.green),
      ),
      home: Builder(
        builder: (context) {
          return Scaffold(
            appBar: AppBar(
              title: const Text(title),
              actions: [
                IconButton(
                  color: Theme.of(context).colorScheme.primary,
                  onPressed: () {
                    Navigator.of(context).push<void>(
                      MaterialPageRoute(
                        builder: (context) =>
                            const SharedPreferencesDebugPage(),
                        fullscreenDialog: true,
                      ),
                    );
                  },
                  icon: const Icon(Icons.bug_report),
                ),
              ],
            ),
            body: Center(
              child: ElevatedButton.icon(
                icon: const Icon(Icons.add),
                label: const Text('Add sample value'),
                onPressed: () async {
                  final messenger = ScaffoldMessenger.of(context);
                  final pref = await SharedPreferences.getInstance();
                  final key = _generateRandomString(10);
                  final value = _generateRandomString(30);
                  final success = await pref.setString(key, value);
                  // ignore: avoid_print
                  print('Set keyValue: $success -> {$key, $value}');
                  messenger
                    ..hideCurrentSnackBar()
                    ..showSnackBar(
                      SnackBar(
                        content:
                            Text('Set keyValue: $success -> {$key, $value}'),
                        behavior: SnackBarBehavior.floating,
                      ),
                    );
                },
              ),
            ),
          );
        },
      ),
    );
  }
}

String _generateRandomString(int length) {
  const randomChars =
      'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  const charsLength = randomChars.length;
  final rand = Random();
  final codeUnits = List.generate(
    length,
    (index) {
      final n = rand.nextInt(charsLength);
      return randomChars.codeUnitAt(n);
    },
  );
  return String.fromCharCodes(codeUnits);
}

功能说明

  • 添加随机键值对:点击“Add sample value”按钮会在shared_preferences中添加一个随机生成的键值对,并显示操作结果。
  • 打开调试页面:点击右上角的bug图标会打开SharedPreferencesDebugPage页面,在这里可以查看、复制和删除shared_preferences中的所有键值对。

通过这个插件,开发者可以在开发过程中更方便地调试和管理shared_preferences中的数据。


更多关于Flutter调试工具插件shared_preferences_debugger的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter调试工具插件shared_preferences_debugger的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用shared_preferences_debugger插件的示例代码和步骤。这个插件主要用于在调试模式下方便地查看和修改shared_preferences的数据。

步骤一:添加依赖

首先,你需要在你的pubspec.yaml文件中添加shared_preferencesshared_preferences_debugger的依赖。

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.15  # 请根据需要检查最新版本
  shared_preferences_debugger: ^0.4.3  # 请根据需要检查最新版本

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

步骤二:配置插件

在你的main.dart文件中,你需要进行一些配置来启用shared_preferences_debugger

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:shared_preferences_debugger/shared_preferences_debugger.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // 初始化 SharedPreferences
  SharedPreferences prefs = await SharedPreferences.getInstance();

  // 在调试模式下启用 shared_preferences_debugger
  if (!kReleaseMode) {
    SharedPreferencesDebugger.enable(prefs);
  }

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('SharedPreferences Debugger Example'),
        ),
        body: Center(
          child: SharedPreferencesExample(),
        ),
      ),
    );
  }
}

class SharedPreferencesExample extends StatefulWidget {
  @override
  _SharedPreferencesExampleState createState() => _SharedPreferencesExampleState();
}

class _SharedPreferencesExampleState extends State<SharedPreferencesExample> {
  Future<void> _saveData() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    await prefs.setString('key', 'value');
    await prefs.setInt('counter', 42);
    await prefs.setBool('isActive', true);
    print('Data saved');
  }

  Future<void> _readData() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    String keyValue = prefs.getString('key') ?? 'No value';
    int counterValue = prefs.getInt('counter') ?? 0;
    bool isActiveValue = prefs.getBool('isActive') ?? false;
    print('key: $keyValue, counter: $counterValue, isActive: $isActiveValue');
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        ElevatedButton(
          onPressed: _saveData,
          child: Text('Save Data'),
        ),
        ElevatedButton(
          onPressed: _readData,
          child: Text('Read Data'),
        ),
      ],
    );
  }
}

步骤三:运行应用

确保你处于调试模式(通常是通过IDE如Android Studio或VSCode运行应用),并且连接了调试设备或模拟器。

步骤四:使用调试工具

在调试模式下运行应用后,你应该能够在开发者工具中看到shared_preferences的数据。具体如何查看取决于你的IDE和调试工具配置。通常,shared_preferences_debugger会在应用的调试控制台中自动显示一个界面,允许你查看和编辑shared_preferences的数据。

注意事项

  • 确保仅在调试模式下启用shared_preferences_debugger,以避免在生产环境中暴露敏感信息。
  • 检查插件的文档和更新日志,以获取最新的使用方法和兼容性信息。

通过以上步骤,你应该能够在Flutter项目中成功集成并使用shared_preferences_debugger插件。

回到顶部