Flutter个人许可管理插件personal_lisancer的使用

Flutter个人许可管理插件personal_lisancer的使用

目标

Dart包用于自动向你的dart文件中添加许可详细信息。支持任何dart项目!

示例

在前

import 'package:flutter/cupertino.dart';
import 'dart:async';
import 'package:example_app/anotherFile2.dart';

在后

//! [@Lisanced](/user/Lisanced)
//! ************************************
//! Project Name : example
//! Author : Abdus İnanç
//! Email : abdusinanc@gmail.com
//! Author Note: Flutter Best
//! Lisance At 26-7-2021
//! ************************************

import 'package:flutter/cupertino.dart';
import 'dart:async';
import 'package:example_app/anotherFile2.dart';

安装

只需将以下行添加到你的pubspec.yaml文件的dev_dependencies部分:

personal_lisancer: ^0.0.1

运行

安装完成后,只需运行以下命令来格式化你的lib、bin、test和tests文件夹中的所有dart文件:

flutter pub run personal_lisancer:main

如果是一个普通的dart应用程序,则可以运行:

pub run personal_lisancer:main

命令行

也许以后会更新。

配置

在你的pubspec.yaml文件中,你可以配置许可信息,如下所示:

personal_lisancer:
  name: 'Abdus Inanc'
  email: 'abdusinanc@gmail.com'
  note: 'Flutter 🚀' # 默认为null
  title: 'Author' # 默认为'Developer'

贡献

欢迎所有贡献!只要确保这不是一个已经存在的问题或拉取请求。

贡献者


示例代码

文件:example/lib/main.dart

//! [@Lisanced](/user/Lisanced)
//! ************************************
//! Project Name : example
//! Author : Abdus İnanç
//! Email : abdusinanc@gmail.com
//! Author Note: Flutter Best
//! Lisance At 26-7-2021
//! ************************************

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  // 此小部件是您的应用程序的根。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // 这是您的应用程序的主题。
        //
        // 尝试使用"flutter run"运行您的应用程序。你会看到
        // 应用程序有一个蓝色工具栏。然后,不退出应用程序,尝试
        // 将下面的primarySwatch更改为Colors.green并调用
        // "热重载"(在您运行"flutter run"的控制台中按"r",或者只是保存更改以在Flutter IDE中进行"热重载")。
        // 注意计数器没有重置回零;应用程序
        // 没有重新启动。
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);
  // 此小部件是您的应用程序的主页。它是有状态的,意味着
  // 它有一个包含影响其外观的字段的状态对象(定义在下面)。
  // 此类是状态的配置。它持有由父级(在这种情况下是App小部件)提供的值(在这种情况下是标题),
  // 并且由状态的构建方法使用。小部件子类中的字段总是标记为"final"。
  final String title;

  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      // 此调用告诉Flutter框架某些事情已更改在这个状态中,
      // 导致它重新运行下面的构建方法
      // 以便显示可以反映更新值。如果我们改变
      // _counter而不调用setState(),则不会重新运行构建方法,
      // 所以看起来什么也不会发生。
      _counter++;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    // 每次调用setState时都会重新运行此方法,
    // 如上文_incrementCounter方法中所做的那样。
    //
    // Flutter框架已被优化为使重新运行构建方法快速,
    // 因此您可以只重建需要更新的内容,而不是逐个更改小部件实例。
    return Scaffold(
      appBar: AppBar(
        // 在这里,我们从MyHomePage对象中获取值
        // 由App.build方法创建,并将其用于设置我们的appbar标题。
        title: Text(widget.title),
      ),
      body: Center(
        // Center是一个布局小部件。它接受一个子元素并将它们放在
        // 父元素的中间。
        child: Column(
          // Column也是一个布局小部件。它接受一个子元素列表
          // 并垂直排列它们。默认情况下,它根据其
          // 子元素水平大小调整自身,并尝试与其父元素一样高。
          //
          // 调用"调试绘制"(在控制台中按"p"键,选择Android
          // Studio中的"切换调试绘制"操作,或Visual Studio Code中的"切换调试绘制"命令)
          // 以查看每个小部件的线框。
          //
          // Column有许多属性可以控制其如何调整大小和
          // 如何定位其子元素。在这里,我们使用mainAxisAlignment来
          // 垂直居中子元素;主轴是垂直轴因为Columns是垂直的(交叉轴将是
          // 水平的)。
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              '你已经按了按钮这么多次:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: '增加',
        child: Icon(Icons.add),
      ),
    );
  }
}

更多关于Flutter个人许可管理插件personal_lisancer的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

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


personal_licenser 是一个用于管理个人许可的 Flutter 插件。它可以帮助开发者在应用中实现许可证的管理和验证。以下是如何使用 personal_licenser 插件的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  personal_licenser: ^1.0.0  # 请使用最新版本

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

2. 初始化插件

在你的 Dart 代码中导入 personal_licenser 插件并初始化它:

import 'package:personal_licenser/personal_licenser.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化插件
  await PersonalLicenser.initialize(
    licenseKey: 'YOUR_LICENSE_KEY',  // 你的许可证密钥
    productId: 'YOUR_PRODUCT_ID',    // 你的产品ID
  );

  runApp(MyApp());
}

3. 验证许可证

在应用中,你可以使用 PersonalLicenser 来验证许可证是否有效:

bool isValid = await PersonalLicenser.validateLicense();
if (isValid) {
  print('License is valid');
} else {
  print('License is invalid');
}

4. 处理许可证状态

你可以在应用的不同部分处理许可证的状态。例如,如果许可证无效,你可以限制某些功能或显示错误信息:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: FutureBuilder<bool>(
        future: PersonalLicenser.validateLicense(),
        builder: (context, snapshot) {
          if (snapshot.connectionState == ConnectionState.waiting) {
            return CircularProgressIndicator();
          } else if (snapshot.hasData && snapshot.data!) {
            return HomeScreen();  // 许可证有效,显示主界面
          } else {
            return LicenseErrorScreen();  // 许可证无效,显示错误界面
          }
        },
      ),
    );
  }
}

5. 处理许可证更新

如果你的许可证需要更新,你可以使用 PersonalLicenser 提供的更新方法:

await PersonalLicenser.updateLicense(newLicenseKey: 'NEW_LICENSE_KEY');

6. 处理错误和异常

在使用 personal_licenser 插件时,可能会遇到各种错误和异常。你可以使用 try-catch 块来捕获和处理这些错误:

try {
  bool isValid = await PersonalLicenser.validateLicense();
  if (isValid) {
    print('License is valid');
  } else {
    print('License is invalid');
  }
} catch (e) {
  print('Error validating license: $e');
}
回到顶部