FlutterTPC Dart Packages 在鸿蒙平台的使用指南
摘要:fluttertpc_dart_packages是由ABOUT YOU维护的Flutter插件集合,已适配HarmonyOS平台。包含sign_in_with_apple(Flutter Favorite认证)、pending_operations等5个核心插件,提供Apple登录、状态管理等功能。安装需通过Git添加依赖,其中sign_in_with_apple需要配置Apple开发者账号
插件介绍
fluttertpc_dart_packages 是由 ABOUT YOU 维护的一系列 Flutter 包集合,提供了多种实用功能,可以帮助开发者更高效地构建跨平台应用程序。该仓库已经适配了 HarmonyOS 平台,允许开发者在鸿蒙应用中轻松使用这些功能强大的插件。
目前仓库中包含以下几个主要包:
- sign_in_with_apple(Flutter Favorite):提供 Apple ID 登录功能,支持从用户钥匙串中检索凭据
- pending_operations:用于管理挂起操作的工具包
- state_queue:状态管理解决方案
- state_queue_test:state_queue 的测试工具
- with_bloc:BLoC 模式的辅助工具
在这些包中,sign_in_with_apple 是最成熟和广泛使用的一个,它已获得 Flutter Favorite 认证,提供了完整的 Apple ID 登录功能支持。
安装与配置
1. 添加依赖
由于这是适配 HarmonyOS 的自定义修改版本,需要通过 Git 形式引入依赖。以下是各包的引入方式:
sign_in_with_apple
dependencies:
flutter:
sdk: flutter
sign_in_with_apple:
git:
url: https://gitcode.com/openharmony-tpc/flutter_packages.git
path: packages/sign_in_with_apple
pending_operations
dependencies:
flutter:
sdk: flutter
pending_operations:
git:
url: https://gitcode.com/openharmony-tpc/flutter_packages.git
path: packages/pending_operations
state_queue
dependencies:
flutter:
sdk: flutter
state_queue:
git:
url: https://gitcode.com/openharmony-tpc/flutter_packages.git
path: packages/state_queue
然后执行以下命令获取依赖:
flutter pub get
2. 配置权限(以 sign_in_with_apple 为例)
在 HarmonyOS 平台上使用 Apple 登录功能,需要进行一些额外配置:
2.1 Apple 开发者账号配置
在使用 sign_in_with_apple 包之前,您需要拥有一个付费的 Apple Developer Program 会员账号,并完成以下配置:
- 注册一个 App ID 并启用 “Sign in with Apple” 功能
- 创建一个 Service ID(用于 Web 和 Android 集成)
- 创建一个认证密钥用于与 Apple 服务器通信
详细的配置步骤请参考 Apple 开发者文档。
2.2 HarmonyOS 项目配置
在 HarmonyOS 项目中,您需要在 entry/src/main/module.json5 文件中添加必要的配置:
{
"module": {
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
]
}
]
}
}
API 使用示例
1. sign_in_with_apple 使用示例
sign_in_with_apple 包提供了简单易用的 API,用于实现 Apple ID 登录功能:
import 'package:flutter/material.dart';
import 'package:sign_in_with_apple/sign_in_with_apple.dart';
class AppleSignInExample extends StatelessWidget {
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: SignInWithAppleButton(
onPressed: () async {
try {
final credential = await SignInWithApple.getAppleIDCredential(
scopes: [
AppleIDAuthorizationScopes.email,
AppleIDAuthorizationScopes.fullName,
],
);
print('Apple ID Credential: $credential');
// 将 credential.authorizationCode 发送到您的服务器进行验证
// 验证成功后创建用户会话
_sendCredentialToServer(credential);
} catch (e) {
print('Apple 登录失败: $e');
}
},
),
),
);
}
void _sendCredentialToServer(AuthorizationCredentialAppleID credential) {
// 实现将凭证发送到服务器的逻辑
// 通常需要发送 credential.authorizationCode 进行验证
print('发送授权码到服务器: ${credential.authorizationCode}');
}
}
2. 处理登录流程
完整的 Apple 登录流程包括以下步骤:
- 用户点击 Apple 登录按钮
- 应用请求 Apple ID 凭证
- 用户在 Apple 登录界面输入凭据
- 应用接收 Apple ID 凭证
- 应用将凭证发送到服务器进行验证
- 服务器验证凭证并创建用户会话
- 服务器返回会话信息给应用
- 应用使用会话信息登录用户
3. pending_operations 使用示例
pending_operations 包用于管理挂起操作:
import 'package:pending_operations/pending_operations.dart';
void main() {
// 创建一个 PendingOperations 实例
final pendingOperations = PendingOperations();
// 启动一个异步操作
final operation = pendingOperations.startOperation();
// 执行异步任务
Future.delayed(Duration(seconds: 2), () {
// 完成操作
operation.complete();
print('操作完成');
});
// 等待所有操作完成
pendingOperations.waitForAll().then((_) {
print('所有操作都已完成');
});
}
支持的平台
这些包已经适配了多个平台,包括:
- iOS
- macOS
- Android
- Web
- HarmonyOS(自定义适配版本)
在 HarmonyOS 平台上,sign_in_with_apple 包已经过测试,可以正常工作。
注意事项
-
Apple 开发者账号:使用 sign_in_with_apple 包需要拥有付费的 Apple Developer Program 会员账号
-
服务器验证:收到 Apple ID 凭证后,必须在服务器端进行验证,不能仅在客户端验证
-
隐私政策:使用 Apple 登录功能时,必须在应用中提供清晰的隐私政策
-
用户体验:请确保 Apple 登录按钮的样式和位置符合 Apple 的设计 guidelines
总结
fluttertpc_dart_packages 提供了一系列功能强大的 Flutter 包,可以帮助开发者更高效地构建跨平台应用程序。其中的 sign_in_with_apple 包是一个成熟的 Apple 登录解决方案,已经获得 Flutter Favorite 认证。
在 HarmonyOS 平台上,这些包已经进行了专门适配,开发者可以通过 Git 依赖的方式轻松引入并使用。通过本文的介绍,开发者应该能够快速上手使用这些包,特别是 sign_in_with_apple 包,在鸿蒙应用中实现 Apple ID 登录功能。
使用这些包可以帮助开发者节省大量开发时间,同时确保应用具有良好的用户体验和安全性。如果您正在开发需要 Apple 登录功能的鸿蒙应用,sign_in_with_apple 包将是一个理想的选择。
更多推荐


所有评论(0)