Flutter订阅管理插件subscription_cli的使用

Flutter订阅管理插件subscription_cli的使用

关于配置文件

配置文件是一个YAML文件,文件名为**scli.yaml**。 这是一个示例文件。

环境变量

配置文件支持环境变量。

你需要使用${ENV_NAME}来引用环境变量。

例如:

config:
  githubToken: ${GITHUB_TOKEN}

当程序运行时,环境变量将被替换为实际值。

配置

配置部分是全局配置。

此部分中的每个配置项将在每个作业中使用。

为VSCode配置

支持使用YAML模式帮助你在VSCode中编写配置文件。

安装YAML模式插件。

在你的工作区设置中添加模式。

{
  "yaml.schemas": {
    "https://raw.githubusercontent.com/CaiJingLong/subscription_cli/main/scli_schema.json": "scli.yaml"
  }
}

githubToken

用于GitHub API的GitHub令牌。

代理

HTTP请求的代理。

如果你使用Clash,可以这样配置:

config:
  proxy:
    host: localhost
    port: 7890

作业

作业部分是作业列表。

每个作业将按顺序运行。

作业参数

某些作业具有可变参数。

这些参数将在作业定义中使用。

你可以使用#{paramName}来引用这些参数。

但是,可变参数并不支持所有位置。

你可以查看选项表以了解哪些地方支持可变参数。

一些作业具有内部可变参数。

并且一些参数支持通配符模式。

基本选项

作业具有一些基本选项。

选项 类型 描述 是否必需 默认值
name 字符串 作业名称 是 无
description 字符串 作业描述 否 null
type 字符串 作业类型 是 无
enabled 布尔 作业是否启用 否 true
overwrite 布尔 作业是否会覆盖旧数据 否 false
workingDir 字符串 作业的工作目录 否 当前目录
params 对象 作业参数 否 null
jobs:
  - name: job name
    type: 见下一节中的类型

GitHub发布

类型:github-release 或 gr

该作业将获取GitHub发布的资产。

选项 类型 描述 是否必需 默认值 支持可变参数 支持通配符
owner 字符串 GitHub仓库的所有者 是 无 否 否
repo 字符串 GitHub仓库名 是 无 否 否
asset 字符串 资产名称 是 无 是 是

内部可变参数:

参数名 描述
version 发行版名称

HTTP作业

开发中…

完整示例

以下是一个完整的**scli.yaml**配置文件示例:

config:
  githubToken: ${GITHUB_TOKEN}
  proxy:
    host: localhost
    port: 7890

jobs:
  - name: 获取GitHub发布资产
    type: github-release
    owner: 用户名
    repo: 仓库名
    asset: 资产名

完整代码示例

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

void main() async {
  // 初始化CLI
  final cli = SubscriptionCli();

  // 加载配置文件
  await cli.loadConfig('scli.yaml');

  // 执行作业
  await cli.runJobs();
}

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

1 回复

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


subscription_cli 是一个 Flutter 插件,用于管理应用内的订阅功能。它提供了一种简单的方式来处理应用内订阅的创建、更新、取消和查询。以下是如何使用 subscription_cli 插件的基本步骤:

1. 添加依赖

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

dependencies:
  subscription_cli: ^1.0.0  # 请检查最新版本

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

2. 初始化插件

在应用启动时初始化 subscription_cli。通常,你可以在 main.dart 中的 main 函数中完成这一操作。

import 'package:subscription_cli/subscription_cli.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await SubscriptionCli.initialize();
  runApp(MyApp());
}

3. 创建订阅

你可以使用 SubscriptionCli.createSubscription 方法来创建一个新的订阅。

import 'package:subscription_cli/subscription_cli.dart';

void createSubscription() async {
  var subscription = await SubscriptionCli.createSubscription(
    productId: 'your_product_id',
    userId: 'your_user_id',
  );
  print('Subscription created: ${subscription.id}');
}

4. 更新订阅

你可以使用 SubscriptionCli.updateSubscription 方法来更新现有的订阅。

void updateSubscription(String subscriptionId) async {
  var subscription = await SubscriptionCli.updateSubscription(
    subscriptionId: subscriptionId,
    newProductId: 'new_product_id',
  );
  print('Subscription updated: ${subscription.id}');
}

5. 取消订阅

你可以使用 SubscriptionCli.cancelSubscription 方法来取消现有的订阅。

void cancelSubscription(String subscriptionId) async {
  var result = await SubscriptionCli.cancelSubscription(
    subscriptionId: subscriptionId,
  );
  if (result) {
    print('Subscription cancelled');
  }
}

6. 查询订阅

你可以使用 SubscriptionCli.getSubscription 方法来查询现有的订阅。

void getSubscription(String subscriptionId) async {
  var subscription = await SubscriptionCli.getSubscription(
    subscriptionId: subscriptionId,
  );
  if (subscription != null) {
    print('Subscription details: ${subscription.toJson()}');
  } else {
    print('Subscription not found');
  }
}

7. 处理订阅状态

你可以监听订阅状态的变化,并在状态发生变化时执行相应的操作。

void listenToSubscriptionChanges(String subscriptionId) {
  SubscriptionCli.listenToSubscriptionChanges(subscriptionId, (status) {
    print('Subscription status changed: $status');
  });
}

8. 获取活动订阅

你可以使用 SubscriptionCli.getActiveSubscriptions 方法来获取所有活动的订阅。

void getActiveSubscriptions() async {
  var activeSubscriptions = await SubscriptionCli.getActiveSubscriptions();
  activeSubscriptions.forEach((subscription) {
    print('Active Subscription: ${subscription.id}');
  });
}

9. 处理错误

在使用 subscription_cli 时,可能会遇到各种错误,比如网络问题或无效的订阅 ID。你可以使用 try-catch 块来捕获并处理这些错误。

void createSubscriptionWithErrorHandling() async {
  try {
    var subscription = await SubscriptionCli.createSubscription(
      productId: 'your_product_id',
      userId: 'your_user_id',
    );
    print('Subscription created: ${subscription.id}');
  } catch (e) {
    print('Failed to create subscription: $e');
  }
}

10. 清理资源

在应用退出时,你可以使用 SubscriptionCli.dispose 方法来释放资源。

void dispose() {
  SubscriptionCli.dispose();
}
回到顶部