account_kit_ohos 0.0.1
account_kit_ohos: ^0.0.1 copied to clipboard
A Flutter plugin for HarmonyOS to integrate Huawei Account Quick Login.
account_kit_ohos #
A Flutter plugin for HarmonyOS to integrate Huawei Account Quick Login.
account_kit_ohos 是一个专为 HarmonyOS 打造的 Flutter 插件,封装了华为 Account Kit 的一键登录能力。
通过集成此插件,开发者可以快速实现手机号一键登录、获取 UnionID/OpenID 等功能,大幅简化用户注册/登录流程,提升转化率。
📖 官方文档:HarmonyOS Account Kit 指南
✨ 功能特性 #
- 🚀 一键登录:基于本机号码校验,用户无需输入密码,点击即可完成登录。
- 🆔 统一标识:支持获取 UnionID / OpenID,方便跨应用/跨端用户体系打通。
- 📱 多端适配:完美支持 HarmonyOS Phone、Tablet、2in1 等设备。
- 🛡️ 安全可靠:Token 在服务端校验,客户端不接触敏感隐私数据。
- 🎨 原生 UI:提供符合 HarmonyOS 设计规范的登录按钮组件。
📋 前置准备 #
在使用插件前,请务必完成以下配置:
- 注册开发者:在 华为开发者联盟 注册并完成实名认证。
- 创建应用:在 AppGallery Connect 中创建应用,并开启 Account Kit 服务。
- 配置签名:在后台配置应用的签名证书指纹(SHA-256)。
- 申请权限:申请
quickLogin(一键登录)相关权限。
🚀 快速开始 #
1. 添加依赖 #
在 pubspec.yaml 中添加:
dependencies:
account_kit_ohos: ^0.0.1
2. 导入包 #
import 'package:account_kit_ohos/account_kit_ohos.dart';
3. 代码示例 #
获取匿名手机号(用于登录页展示)
void getQuickLoginAnonymousPhone() async {
AccountKitResponseString res =
await AccountKitMethodChannel.instance.getQuickLoginAnonymousPhone();
if (res.code == AccountKitResponseData.SUCCESS) {
setState(() {
anonymousPhone = res.data;
});
} else {
setState(() {
anonymousPhone = res.message;
});
}
}
使用官方登录按钮
Widget buildAccountKitButton() {
return AccountKitButton(
onViewCreated: (controller) {
buttonController = controller;
subscription = controller.dataStream.listen((res) {
if (res.type == AccountKitResponseType.agreementDialogOpen) {
setState(() {
authCode = '未同意协议';
});
} else if (res.type == AccountKitResponseType.loginSuccess) {
// 获取 Authorization Code
AccountKitResponseString? resData =
res.data as AccountKitResponseString;
setState(() {
authCode = resData.data;
});
} else if (res.type == AccountKitResponseType.loginError) {
AccountKitResponseString? resData =
res.data as AccountKitResponseString;
setState(() {
authCode = resData.message;
});
}
});
},
);
}
同意隐私协议
buttonController.agreementStatusChanged(true);
📜 License #
This project is licensed under the MIT License - see the LICENSE file for details.