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中的所有模块都需要相同的初始配置key
和secret
。
模块
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
更多关于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);
}