# AccountKit-Codelab-Clientdemo-For-Atomicservice-ArkTS **Repository Path**: harmonyos_codelabs/account-kit-codelab-clientdemo-for-atomicservice-ark-ts ## Basic Information - **Project Name**: AccountKit-Codelab-Clientdemo-For-Atomicservice-ArkTS - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-30 - **Last Updated**: 2025-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Account Kit-静默登录及获取手机号 ## 介绍 本示例展示了使用Account Kit提供的登录、手机号授权与快速验证的能力。 本示例模拟了在元服务里,调用接口完成静默登录、调用快速验证手机号Button拉起授权页面的场景。 需要使用Account Kit接口 **@kit.AccountKit**、Scenario Fusion Kit组件 **@kit.ScenarioFusionKit**。 ## 效果预览 | **主页** | **拉起的授权页** | |-----------------------------------------|-----------------------------------------| | ![avatar](screenshots/device/img_1.png) | ![avatar](screenshots/device/img_2.png) | ## 本示例工程的配置与使用 ### 在DevEco中配置本示例工程的步骤如下 1. [创建项目](https://developer.huawei.com/consumer/cn/doc/app/agc-help-createproject-0000001100334664)及[元服务](https://developer.huawei.com/consumer/cn/doc/app/agc-help-createharmonyapp-0000001945392297)。 2. 在[华为开发者联盟](https://developer.huawei.com/consumer/cn/)为应用配置权限(权限名:phone),具体操作可参考[Account Kit开发指南](https://developer.huawei.com/consumer/cn/doc/atomic-guides/account-guide-atomic-permissions)。 3. 打开本示例工程,使用[AppGallery Connect](https://developer.huawei.com/consumer/cn/service/josp/agc/index.html)配置的应用包名替换app.json5文件中的bundleName属性值。 4. 使用[AppGallery Connect](https://developer.huawei.com/consumer/cn/service/josp/agc/index.html)配置的应用Client ID替换module.json5文件中的client_id属性值。 5. 生成SHA256应用签名证书指纹并添加到[AppGallery Connect](https://developer.huawei.com/consumer/cn/service/josp/agc/index.html)对应的应用配置中,请参考应用开发准备中的[添加公钥指纹](https://developer.huawei.com/consumer/cn/doc/atomic-guides/atomic-dev-preparation#section53459230820)章节。 #### 本示例工程使用说明 1. 运行本示例,元服务进行静默登录。若系统未登录华为账号,则弹出错误提示。 2. 申请phone权限后,在页面上点击“去获取”,会拉起手机号授权页面,授权成功后展示180******00(本示例只获取code,获取code后需要将code传给元服务服务器,调用华为账号服务器接口换取Access Token,然后再[获取用户手机号](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/account-api-get-user-info-get-phone)),如未申请权限则弹出错误提示。 3. 本示例的手机号使用PersistentStorage进行数据持久化存储,开发者在设置-应用和元服务-元服务中移除本示例,再重新打包运行本示例,即可重新体验手机号授权与快速验证功能。 ## 工程目录 ``` ├─entry/src/main/ets // 代码区 │ ├─entryability │ │ └─EntryAbility.ets // 程序入口类 │ ├─pages // 存放页面文件目录 │ │ └─Index.ets // 主页面 └──entry/src/main/resources // 资源文件目录 ``` ## 具体实现 在Index中模拟静默登录、调用快速验证手机号Button完成手机号授权与验证,参考Index.ets: * 使用authentication.HuaweiIDProvider().createLoginWithHuaweiIDRequest()创建登录请求,配合PersistentStorage模拟静默登录 * 调用FunctionalButton组件并设置openType为GET_PHONE_NUMBER * 使用functionalButtonComponentManager.FunctionalButtonController构造FunctionalButton组件的控制器对象controller,并且设置onGetPhoneNumber回调函数 参考 1. entry\src\main\ets\pages\Index.ets ## 依赖 依赖设备具备WIFI能力 ## 约束与限制 1. 本示例仅支持标准系统上运行,支持设备:phone、tablet。 2. 本示例不支持大字体模式、横屏模式、隐私空间模式。 3. HarmonyOS系统:HarmonyOS NEXT Beta1及以上。 4. DevEco Studio版本:DevEco Studio NEXT Beta1及以上。 5. HarmonyOS SDK版本:HarmonyOS NEXT Beta1及以上。