无赖 Flutter SDK(wulai_flutter)

简体中文 | English

📖 项目描述

wulai_flutter 是一个专为 Flutter 应用程序设计的强大且灵活的到期日管理插件。它旨在帮助开发者轻松地集成到期日提醒功能,例如会员到期、试用期结束或任何基于时间的服务。通过智能计算剩余天数、动态调整 UI 元素的透明度以及提供可定制的到期回调机制,wulai_flutter 确保你的应用能够优雅地处理时间敏感的业务逻辑,并提供直观的用户体验。

✨ 功能特性

  • 📅 智能到期计算: 自动、精确地计算距离指定到期日的剩余天数。
  • 🎨 动态透明度: 根据到期时间(例如,剩余天数越少,透明度越低)动态调整界面元素的透明度,提供视觉上的提醒。
  • 🔔 到期回调: 提供灵活的 onExpiryDateDue 回调方法,允许你在到期日到达时执行自定义逻辑,如显示弹窗、发送通知等。
  • 🎯 UI 组件: 内置 WulaiWulaiWarning 等预构建的 Flutter Widget,开箱即用,帮助你快速集成到期提醒界面。
  • 📱 跨平台: 完全兼容 iOS 和 Android 平台,确保一致的用户体验。

🎯 运行要求

为了确保 wulai_flutter 插件的正常运行,你的开发环境需要满足以下最低要求:

环境 最低版本
Flutter 3.10.0
Dart 3.0.0
Android 21(5.0)
iOS 11.0

🚀 快速安装

1. 添加依赖

在你的 Flutter 项目的 pubspec.yaml 文件中,dependencies 部分添加 wulai_flutter

dependencies:
  flutter:
    sdk: flutter
  wulai_flutter: 0.0.1

然后运行 flutter pub get 命令来获取新的依赖。

2. 导入包

在你需要使用 wulai_flutter 功能的 Dart 文件中导入:

import 'package:wulai_flutter/wulai_flutter.dart';

💡 使用示例

wulai_flutter 提供了简单直观的 API 来管理和显示到期日信息。

基本用法

你可以使用 Wulai Widget 来包裹你的内容,并传入 dueDateonExpiryDateDue 回调。当 dueDate 到期时,onExpiryDateDue 会被触发。

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

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

  final dueDate = DateTime(2025, 10, 30);
  final today = DateTime.now();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
      ),
      home: Wulai(
        dueDate: dueDate,
        deadlineDays: dueDate.difference(today).inDays,
        child: const MyHomePage(title: 'Flutter Demo Home Page'),
        whenExpiryDoThis: () { 
            // 如果希望使用包的默认页面,则无需声明;否则,请在此处声明你想要执行的逻辑。
            // If you want to use the default page of the package, you do not need to declare; otherwise, please declare what you want to do.

            return null;
        },
      ),
    );
  }
}

img

WulaiWarning 组件

WulaiWarning 是一个预设的警告组件,用于在到期日临近或到达时显示警告信息。

WulaiWarning(
  message: '您的试用期即将结束!',
  backgroundColor: Colors.orange,
  textColor: Colors.black,
  icon: Icons.warning,
);

⚙️ 配置选项与环境变量

wulai_flutter 插件本身不依赖于特定的环境变量。所有的配置都通过 Wulai Widget 的属性进行。

Wulai Widget 属性

属性名 类型 描述 默认值
dueDate DateTime 必填。指定到期日期。
onExpiryDateDue VoidCallback? 可选。到期日到达时触发的回调函数。 null
builder WulaiBuilder 必填。用于构建子 Widget 的函数,提供剩余天数和透明度。
core WulaiCore? 可选。自定义 WulaiCore 实例,用于高级控制。 内部默认实例

WulaiWarning Widget 属性

属性名 类型 描述 默认值
message String 必填。警告信息文本。
backgroundColor Color? 可选。警告背景颜色。 Colors.yellow
textColor Color? 可选。警告文本颜色。 Colors.black
icon IconData? 可选。警告图标。 Icons.info_outline
padding EdgeInsetsGeometry? 可选。警告内容的内边距。 EdgeInsets.all(8.0)
margin ``EdgeInsetsGeometry?` 可选。警告组件的外边距。 EdgeInsets.symmetric(vertical: 8.0)
borderRadius BorderRadiusGeometry? 可选。警告框的圆角。 BorderRadius.circular(4.0)

🤝 贡献指南

我们非常欢迎社区的贡献!如果你有兴趣改进 wulai_flutter,请遵循以下步骤:

  1. Fork 本仓库到你的 GitHub 账户。
  2. 克隆 你 Fork 的仓库到本地。
    git clone https://github.com/ctkqiang/wulai_flutter.git
    
  3. 创建新分支 进行你的功能开发或 Bug 修复。
    git checkout -b feature/your-feature-name
    
  4. 编写代码 并确保遵循项目编码规范。
  5. 编写测试 并确保所有测试通过。
  6. 提交你的更改
    git commit -m "feat: 添加新功能"
    
  7. 推送到你的远程仓库
    git push origin feature/your-feature-name
    
  8. 创建 Pull Requestwulai_fluttermain 分支。请详细描述你的更改内容和目的。

开发工作流程

  • Bug 报告: 如果你发现任何 Bug,请在 GitHub Issues 中提交,并提供详细的复现步骤。
  • 功能请求: 如果你有新的功能想法,也欢迎在 GitHub Issues 中提出。
  • 代码审查: 所有的 Pull Request 都需要经过代码审查才能合并。

📄 许可信息

wulai_flutter 遵循 MIT 许可证。详情请参阅仓库中的 LICENSE 文件。

🚧 项目状态

wulai_flutter 目前处于积极开发和维护阶段。我们致力于提供稳定、高效的到期日管理解决方案。欢迎提出建议和反馈!

❓ 故障排除

1. 插件未按预期工作

  • 检查 pubspec.yaml: 确保 wulai_flutter 依赖已正确添加,并且已运行 flutter pub get
  • 检查 dueDate: 确保你传入的 dueDate 是一个有效的 DateTime 对象,并且逻辑上符合你的预期。
  • 检查 builder: 确保 builder 函数正确地使用了 remainingDaysopacity 参数来构建你的 UI。
  • 查看控制台输出: 检查是否有任何错误或警告信息。

2. onExpiryDateDue 未触发

  • 检查 dueDate: 确保 dueDate 确实已经到达或已经过去。
  • 检查回调逻辑: 确保 onExpiryDateDue 中的逻辑是正确的,并且没有被其他代码阻塞。

3. UI 透明度不正确

  • 检查 opacity 参数: 确保你在 builder 函数中正确地将 opacity 参数应用到了你的 Widget 上。
  • 检查 dueDate: 透明度是根据 dueDate 和当前时间计算的,请确保 dueDate 设置正确。

如果以上方法都无法解决你的问题,请在 GitHub Issues 中提交你的问题,并提供详细的复现步骤和相关代码。


🌐 全球捐赠通道

国内用户


🔵 支付宝(小企鹅在收金币哟~)

🟢 微信支付(小绿龙在收金币哟~)

国际用户


📌 开发者社交图谱

技术交流

社交互动


🙌 感谢您成为开源社区的重要一员!
💬 捐赠后欢迎通过社交平台与我联系,您的名字将出现在项目致谢列表!

Libraries

wulai_flutter