Flutter插件apillon_flutter的使用方法详解介绍

Flutter插件apillon_flutter的使用方法详解介绍

该插件提供了Dart和Flutter开发者与Apillon服务交互的工具和库,通过减少样板代码并简化多步骤流程为单一操作来简化Apillon的REST API的使用。

要求

  • Dart SDK: >=3.2.2 <4.0.0
  • Apillon API密钥和密钥
  • http包版本 1.1.0

开始使用插件apillon_flutter

要使用Apillon Flutter SDK,您必须首先在Apillon.io注册账户,创建项目,并生成具有适当权限的API密钥。

该Flutter SDK包可以在pub.dev上作为Dart包获取,也可以直接在Github上查看。要在您的项目中包含它,请将以下内容添加到pubspec.yaml文件中:

dependencies:
  apillon_flutter: ^0.0.1

初始化

要开始使用SDK,您需要导入它并用您的Apillon API密钥和密钥进行配置。以下是初始化Storage模块的示例:

import 'package:apillon_flutter/apillon_flutter.dart';

void main() {
  var storage = Storage(ApillonConfig(
    key: 'yourApiKey',
    secret: 'yourApiSecret',
  ));
}

Apillon Flutter SDK中的所有模块都需要相同的初始配置keysecret

模块

Apillon Flutter SDK由几个模块组成,每个模块对应特定的Apillon服务。以下是使用这些模块的一些示例。

Storage

Storage模块提供了与Storage服务交互的功能。

使用示例

import 'dart:io';
import 'package:apillon_flutter/apillon_flutter.dart';
import 'package:path/path.dart' as path;

void main() async {
  var storage = Storage(ApillonConfig(
    key: 'yourApiKey',
    secret: 'yourApiSecret',
  ));

  // 列出所有存储桶
  var buckets = await storage.listBuckets(IApillonPagination());
  print('存储桶:');
  for (var bucket in buckets) {
    print('${bucket.name} - ${bucket.uuid}');
  }

  var bucketUuid = 'eaff2672-3012-46fb-9278-5efacc6cb616';

  // 获取特定存储桶详情
  var bucketDetails = await storage.bucket(bucketUuid).get();
  print('存储桶详情: ${bucketDetails.name}, 大小: ${bucketDetails.size}');

  // 列出存储桶内的文件
  var files = await storage.bucket(bucketUuid).listFiles(IBucketFilesRequest());
  print('存储桶内的文件:');
  for (var file in files) {
    print('${file.name} - ${file.uuid}');
  }

  // 从文件夹上传文件
  var uploadDir = path.join(Directory.current.path, 'my-folder');
  print('正在从$uploadDir上传文件');
  await storage.bucket(bucketUuid).uploadFromFolder(uploadDir, IFileUploadRequest());

  // 从缓冲区上传单个文件
  var filePath = path.join(Directory.current.path, 'file.txt');
  var fileBytes = File(filePath).readAsBytesSync();
  await storage.bucket(bucketUuid).uploadFiles([
    FileMetadata(
      fileName: 'file.txt',
      contentType: 'text/plain',
      content: fileBytes,
    )
  ], IFileUploadRequest());

  // 获取特定文件详情
  var fileUuid = 'eaff2672-3012-46fb-9278-5efacc6cb616';
  var fileDetails = await storage.bucket(bucketUuid).file(fileUuid).get();
  print('文件详情: ${fileDetails.name}, 大小: ${fileDetails.size}');
}

IPNS方法

Storage模块还包含用于操作特定存储桶的IPNS记录的方法。

import 'package:apillon_flutter/apillon_flutter.dart';

void main() async {
  var storage = Storage(ApillonConfig(
    key: 'yourApiKey',
    secret: 'yourApiSecret',
  ));
  var bucketUuid = 'eaff2672-3012-46fb-9278-5efacc6cb616';

  // 列出存储桶内的所有现有IPNS记录
  var ipnsRecords = await storage.bucket(bucketUuid).listIpnsNames(IPNSListRequest());
  print('IPNS记录:');
  for (var record in ipnsRecords) {
    print('${record.name} - ${record.uuid}');
  }

  // 创建新的IPNS记录
  const name = 'Test IPNS';
  const description = '这是一个测试描述';
  const cid = 'QmUxtfFfWFguxSWUUy2FiBsGuH6Px4KYFxJqNYJRiDpemj';
  var newIpnsRecord = await storage.bucket(bucketUuid).createIpns(ICreateIpns(
    name: name,
    description: description,
    cid: cid,
  ));
  print('新IPNS记录: ${newIpnsRecord.uuid}');

  // 发布IPNS记录指向新的CID
  const newCid = 'Qmakf2aN7wzt5u9H3RadGjfotu62JsDfBq8hHzGsV2LZFx';
  await storage.bucket(bucketUuid).ipns(newIpnsRecord.uuid).publish(newCid);
  print('IPNS记录发布到新的CID: $newCid');

  // 删除IPNS记录
  await storage.bucket(bucketUuid).ipns(newIpnsRecord.uuid).delete();
  print('IPNS记录已删除: ${newIpnsRecord.uuid}');
}

NFTs

NFT模块封装了NFT服务的功能。

使用示例

import 'package:apillon_flutter/apillon_flutter.dart';

void main() async {
  var nft = Nft(ApillonConfig(
    key: 'yourApiKey',
    secret: 'yourApiSecret',
  ));

  // 创建一个新的NFT集合
  var collection = await nft.create(ICreateCollection(
    chain: EvmChain.moonbase,
    collectionType1: CollectionType.generic,
    name: 'Space Explorers',
    description: '一个太空探险者的集合',
    symbol: 'SE',
    royaltiesFees: 3,
    royaltiesAddress: '0x95B8c6b9225456107649776EF8aAF20C42d58814',
    baseUri: 'https://test.com/metadata/',
    baseExtension: '.json',
    maxSupply: 50,
    isRevokable: false,
    isSoulbound: false,
    drop: false,
  ));
  print('集合创建: ${collection.uuid}');
  // 或者创建一个substrate集合
  var substrateCollection = await nft.createSubstrate({
    chain: SubstrateChain.astar,
    collectionType1: CollectionType.generic,
    name: 'SpaceExplorers',
    symbol: 'SE',
    ...
  });

  // 在集合中铸造一个新的NFT
  var mintResult = await nft.collection(collection.uuid).mint(IMintNftData(
    receivingAddress: '0x5BA8B0c24bA5307b67E619ad500a635204F73bF1',
    quantity: 1,
  ));
  print('铸造交易哈希: ${mintResult.transactionHash}');

  // 列出NFT集合
  var collections = await nft.listCollections(ICollectionFilters());

  // 将NFT的所有权转让给另一个地址
  await collection.transferOwnership('0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD');
}

Identity

Identity模块提供了验证钱包签名和获取身份数据的功能。

使用示例

import 'package:apillon_flutter/apillon_flutter.dart';

void main() async {
  var identity = Identity(ApillonConfig(
    key: 'yourApiKey',
    secret: 'yourApiSecret',
  ));

  // 为EVM钱包签名验证生成签名消息
  const customMessage = 'Identity EVM SDK 测试';
  var signingMessage = identity.generateSigningMessage(customMessage)["message"];
  print('签名消息: $signingMessage');

  var walletAddress = '0xa79bg13g2...';
  var signature = '0xYourSignature'; // 由客户端应用从用户的钱包中获得的签名

  // 验证EVM钱包签名
  var validationResult = await identity.validateEvmWalletSignature(IValidateEvmWalletSignature(
    walletAddress: walletAddress,
    message: signingMessage,
    signature: signature,
  ));
  print('是否有效: ${validationResult.isValid}');
  print('地址: ${validationResult.address}');

  // 获取Polkadot地址的钱包身份档案
  var polkadotAddress = '5HqHQDGcHqS...',
  var identityProfile = await identity.getWalletIdentity(polkadotAddress);
  print('身份档案: ${identityProfile.subsocial['content']['name']}');
}

更多关于Flutter插件apillon_flutter的使用方法详解介绍的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter插件apillon_flutter的使用方法详解介绍的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


apillon_flutter 是一个未知的 Flutter 插件,可能是某个开发者或团队创建的特定功能插件。由于该插件不是 Flutter 官方或社区广泛使用的插件,因此其功能和潜在用途需要通过查看其文档、源代码或相关示例来了解。以下是一些可能的使用场景和步骤,帮助你理解如何探索和使用这个插件:


1. 查找插件的文档和描述

  • 访问 pub.dev 并搜索 apillon_flutter,查看是否有相关的发布信息和文档。
  • 如果插件未发布在 pub.dev,尝试在 GitHub 或其他代码托管平台上搜索,看看是否有相关仓库和文档。

2. 检查插件的功能

  • 如果插件有文档,查看其功能介绍和 API 说明。
  • 如果插件没有文档,可以通过查看其 pubspec.yaml 文件或源代码来推断其功能。

3. 典型使用场景

根据插件的名称和可能的用途,以下是一些潜在的使用场景:

  • 与 Apillon 平台集成:如果 Apillon 是一个特定的服务或平台(例如区块链、云存储、API 网关等),该插件可能用于在 Flutter 应用中集成 Apillon 的功能。
  • 特定工具或 SDK:插件可能封装了某个特定的工具或 SDK,用于实现某些功能(如支付、身份验证、数据分析等)。
  • 自定义功能:插件可能是某个开发者或团队为特定项目开发的自定义功能插件,用于解决特定的业务需求。

4. 示例代码

如果插件有文档或示例代码,可以按照以下步骤使用:

dependencies:
  apillon_flutter: ^1.0.0 # 假设版本号
import 'package:apillon_flutter/apillon_flutter.dart';

void main() {
  // 初始化插件
  ApillonFlutter.initialize();

  // 调用插件的功能
  var result = ApillonFlutter.someMethod();
  print(result);
}
回到顶部