鸿蒙应用服务开发【华为账号服务】

Account Kit

介绍

本示例展示了使用Account Kit提供的登录、授权头像昵称、实时验证手机号、收货地址、发票抬头、未成年人模式的能力。

本示例模拟了在应用里,调用一键登录Button组件拉起符合华为规范的登录页面;调用获取头像昵称接口获取头像昵称,调用实时验证手机号接口拉起实时验证页面,调用收货地址接口获取收货地址,调用发票抬头接口获取发票抬头,调用未成年人模式接口开启或关闭未成年人模式。

需要使用Account Kit接口 @kit.AccountKit

效果预览

1

2

3

本示例工程的配置与使用

在DevEco中配置本示例工程的步骤如下

  1. [创建项目]及[应用]。
  2. 在[华为开发者联盟]为应用配置权限(权限名:realTimePhone、quickLoginMobilePhone),具体操作可参考[Account Kit开发指南]。
  3. 应用调用收货地址API前,需完成对应的权限申请,当前可通过accountkit@huawei.com进行邮件申请。
    请提供如下信息进行申请,我们会在15个工作日内回复申请结果,请您留意邮箱信息。
    邮箱主题:【获取收货地址】权限申请
    邮件正文:***
    企业名称:***
    企业包名:com..
    APP ID: 112
    Client ID:1
    14
    使用场景:***
  4. 打开本示例应用,使用[AppGallery Connect]配置的应用包名替换app.json5文件中的bundleName属性值。
  5. 使用[AppGallery Connect]配置的应用Client ID替换module.json5文件中的client_id属性值。
  6. 生成SHA256应用签名证书指纹并添加到[AppGallery Connect]对应的应用配置中,证书指纹生成请参考应用开发准备中的[添加公钥指纹]章节。
本示例工程使用说明
  1. 运行该本示例应用,依次点击“登录/注册”和“华为账号一键登录”按钮进行登录,如果系统账号未登录,会拉起应用其他登录方式。
  2. 如系统已登录注册地为中国大陆且已绑定手机号的华为账号,应用在申请完“华为账号一键登录”权限后,点击“登录/注册”按钮,会拉起嵌有“华为账号一键登录”按钮的登录页面,否则拉起其他登录方式,其他登录方式仅为演示,实际并未登录成功。
  3. 登录成功后,在应用首页点击“亲爱的用户”会进入个人信息页面,如果头像昵称未授权,点击亲爱的用户或默认头像会拉起头像昵称授权页面,授权成功后会在个人信息页展示华为账号头像昵称。个人信息页面的头像、昵称仅用于展示,不可点击修改。
  4. 申请realTimePhone权限后,在个人信息页点击180******00,会拉起手机号验证及授权页面,授权成功后展示默认的匿名化手机号180******00 (本示例只获取code,获取code后需要将code传给应用服务器,调用华为账号服务器接口换取Access Token,然后再[获取用户手机号], 如未申请权限则点击无效。
  5. 申请获取收货地址API权限后,在个人信息页点击收货地址拉起选择收货地址页面,用户选择对应的地址后展示收货地址信息。
  6. 应用首次启动时,会调用getMinorsProtectionInfoSync接口,查询未成年人模式的开启状态,如果查询到系统未成年人模式已开启,则应用弹出“未成年人模式已开启”提示,如果查询到系统未成年人模式未开启,不弹出提示。当前应用启动后会订阅未成年人模式开启/关闭事件,当感知到系统未成年人模式开启/关闭时,则应用未成年人模式按钮状态会跟随系统未成年人模式状态进行切换。
  7. 本示例除了未成年人模式接口,其他所有数据使用的是缓存数据,未做数据持久化,开发者只需在主页面手势返回到系统桌面或者后台清理该应用进程,重新打开应用,即可重新体验账号登录等相关功能。
  8. 在个人信息页点击发票抬头拉起选择发票抬头页面,用户选择对应的抬头后展示发票抬头信息。
  9. 在个人信息页,点击未成年人模式按钮,引导用户开启或关闭未成年人模式,未成年人模式开启时,可用时长限制按钮默认为开启状态,用户可以点击可用时长限制按钮,关闭时长限制,当可用时长限制为关闭状态时,用户也可点击可用时长限制按钮开启时长限制。

具体实现

调用一键登录组件拉起符合华为规范的登录页面,功能在QuickLoginButton中,参考QuickLoginButton.ets:

  • 使用loginComponentManager.PrivacyText创建QuickLoginButton组件隐私文本对象privacyText
  • 使用loginComponentManager.LoginWithHuaweiIDButtonController构造QuickLoginButton组件的控制器对象controller
  • 创建一键登录组件对象将privacyText、controller等作为参数传入,拉起登录界面
  • 使用setAgreementStatus方法设置用户是否同意协议,通过该状态判断是否需要拉起协议弹窗
  • 使用continueLogin方法设置同意协议与登录一同完成,同意协议后直接触发登录的异步回调,用户无需再次点击登录按钮
  • 通过LoginWithHuaweiIDButton组件内设置param中的extraStyle属性开启一键登录按钮的点击加载态

调用获取头像昵称授权接口拉起授权页面,参考PersonalInfo.ets:

  • 使用authentication.HuaweiIDProvider().createAuthorizationWithHuaweiIDRequest()创建授权请求,完成头像昵称参数设置
  • 使用authentication.AuthenticationController(getContext(this))创建controller
  • 调用controller.executeRequest()执行请求

在PersonalInfo中调用实时验证手机号接口完成手机号实时验证与授权,参考PersonalInfo.ets:

  • 使用authentication.HuaweiIDProvider().createAuthorizationWithHuaweiIDRequest()创建授权请求,完成实时验证手机号参数设置
  • 使用authentication.AuthenticationController(getContext(this))创建controller
  • 调用controller.executeRequest()执行请求

在PersonalInfo中调用收货地址接口获取收货地址信息,参考PersonalInfo.ets:

  • 使用shippingAddress.chooseAddress获取AddressInfo对象
  • 从AddressInfo对象中获取收货人姓名、电话、地址信息

使用HomePage作为Navigation容器进行页面承载,参考HomePage.ets:

MainPage作为应用首页调用未成年人模式接口,参考MainPage.ets:

  • 使用PersistentStorage和AppStorage存储和获取到当前应用是否开启未成年人模式的状态位。
  • 调用minorsProtection.getMinorsProtectionInfoSync()函数,从minorsProtection.MinorsProtectionInfo对象中获取未成年人模式的开启状态。

在PersonalInfo中调用发票抬头接口获取发票抬头信息,参考PersonalInfo.ets:

  • 使用invoiceAssistant.selectInvoiceTitle获取InvoiceTitle对象
  • 从InvoiceTitle对象中获取发票抬头名称、税号等信息

在PersonalInfo中调用未成年人模式相关接口设置未成年人模式,参考PersonalInfo.ets:

  • 使用minorsProtection.leadToTurnOnMinorsMode引导用户开启未成年人模式。
  • 使用minorsProtection.leadToTurnOffMinorsMode引导用户关闭未成年人模式。
  • 使用minorsProtection.verifyMinorsProtectionCredential校验用户开启未成年人模式的密码。

在CommonUtil监听未成年状态变化,参考在CommonUtil.ets:

  • 使用@ohos.commonEventManager系统能力监听COMMON_EVENT_MINORSMODE_ON和COMMON_EVENT_MINORSMODE_OFF事件。

在OtherLoginModel页面中自定义用户的其他登录方式:

  • 比如手机号验证码、密码等

在ProtocolWebView页面中使用Web组件显示《华为账号用户认证协议》内容:

  • 在data.json中获取网页链接,当前仅支持中英文

在AgreementDialog中实现用户隐私协议的弹窗组件

  • 通过自定义CustomDialogController控制弹窗的显隐

在ErrorCodeEntity中定义通用的实体数据信息

  • 比如通用错误码、通用常量等
    以上就是本篇文章所带来的鸿蒙开发中一小部分技术讲解;想要学习完整的鸿蒙全栈技术。可以在结尾找我可全部拿到!
    下面是鸿蒙的完整学习路线,展示如下:
    1

除此之外,根据这个学习鸿蒙全栈学习路线,也附带一整套完整的学习【文档+视频】,内容包含如下

内容包含了:(ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上快速成长!

鸿蒙【北向应用开发+南向系统层开发】文档

鸿蒙【基础+实战项目】视频

鸿蒙面经

在这里插入图片描述

为了避免大家在学习过程中产生更多的时间成本,对比我把以上内容全部放在了↓↓↓想要的可以自拿喔!谢谢大家观看!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/392254.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

excel中有些以文本格式存储的数值如何批量转换为数字

一、背景 1.1 文本格式存储的数值特点 在平时工作中有时候会从别地方导出来表格,表格中有些数值是以文本格式存储的(特点:单元格的左上角有个绿色的小标)。 1.2 文本格式存储的数值在排序时不符合预期 当我们需要进行排序的时候…

IDEA全局搜索Jar包中内容

IDEA全局搜索Jar包中内容 【一】下载源码【二】搜索内容【1】按文件名搜索【2】全局关键字搜索【3】方法引用 【一】下载源码 想要搜索Jar中关键字,必须先把jar包源码下载下来,否则搜不到。 Preferences --> Maven --> Importing,根据…

微信丨QQ丨TIM防撤回工具

适用于 Windows 下 PC 版微信/QQ/TIM的防撤回补丁。支持最新版微信/QQ/TIM,其中微信能够选择安装多开功能。微信防撤回信息! 「防撤回」来自UC网盘分享https://drive.uc.cn/s/95f9aabbc9684

基于SSM的哈米音乐实战项目,Java课程设计作业,Java毕业设计项目,找工作前的实战项目,附部分源码以及数据库

1、项目所需技术 java基础,java反射,泛型html,css,JavaScript,jquery,bootstrap,layuijstl,el表达式,jsp,mysql,jdbc,xml&#xff0c…

【Material-UI】Button 组件中的基本按钮详解

文章目录 一、基本按钮变体1. 文本按钮(Text Button)2. 实心按钮(Contained Button)3. 轮廓按钮(Outlined Button) 二、应用场景与注意事项1. 使用场景2. 注意事项 三、总结 Material-UI 的 Button 组件是前…

【Material-UI】Icon Button 组件详解

文章目录 一、基础用法1. 禁用状态 二、大小(Sizes)1. 小尺寸(Small)2. 大尺寸(Large) 三、颜色(Colors)1. 主题颜色2. 自定义颜色 四、高级用法和最佳实践1. 无障碍性(A…

浅谈用二分和三分法解决问题(c++)

目录 问题引入[NOIP2001 提高组] 一元三次方程求解题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路分析AC代码 思考关于二分和三分例题讲解进击的奶牛题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 思路AC代码 平均数题目描述输入格式输出格式样例 …

C# 方法的重载(Overload)

在C#中,方法的重载(Overloading)是指在一个类中可以有多个同名的方法,只要这些方法具有不同的方法签名(即参数的数量、类型或顺序不同)。这使得你可以使用相同的方法名称来执行相似但参数不同的操作&#x…

Java单元覆盖率工具JaCoCo使用指南

JaCoCo(Java Code Coverage Library)是一款开源的Java代码覆盖率工具,它提供了详细的代码覆盖信息,帮助开发人员了解测试用例对代码的覆盖情况,从而发现潜在的问题和改进空间。以下是关于JaCoCo的详细介绍:…

动态规划例题

目录 A.小红组比赛 B.小红升装备 A.小红组比赛 思路 :经典的多重背包问题,这里将dp[ i ][ j ]定义为前 i 场比赛的难度 j 是否可能,所以dp只需用0 1 表示,然后遍历dp[ n ][ j ]即可。 代码: void solve() { cin&g…

常见API(二)

API 应用程序编程接口,提高编程效率。本次学习了Object类,Objects工具类,包装类,StringBuilder,StringBuffer,和StringJoiner。 目录 1.Object 常见方法: 2.Objects 常见方法: 3…

C# Unity 面向对象补全计划 七大原则 之 里氏替换(LSP) 难度:☆☆☆ 总结:子类可以当父类用,牛马是马,骡马也是马

本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正 本系列作为七大原则和设计模式的进阶知识,看不懂没关系 请看专栏:http://t.csdnimg.cn/mIitr,尤其是关于继承的两篇文章&#xff…

3个步骤上⼿Midjourney表情包教程,并上传到微信实现变现!

羡慕别⼈设计的表情包,有趣⼜好玩~也想拥有⾃⼰的个性表情包,可是⾯对复杂的设计流程,却不知从何开始?现在⽤Midjourney,你就可以轻松制作,各种⻛格的表情包,变钱赚钱,这些⽅法分享给 你~ 通⽤公式: 我们⽤表情包魔法公式,加⼊你想要的风格,⽐如漫画、卡通、插画、…

AI答题应用平台相关面试题

目录 1、请介绍整个系统后端的架构设计,有哪些模块以及各模块之间的关系? 2、你在项目中是如何设计库表的?可以从字段、索引、关联等方面回答。 3、为什么使用策略模式来封装不同的应用评分算法?它有哪些好处?具体如…

源码厂商数字人直播系统搭建体系解析:如何提升系统竞争力?

随着人工智能时代的来临,以数字人直播为代表的AI技术应用逐渐成为流行,越来越多的企业都开始引进或计划引进数字人直播,以实现其在直播板块的降本增效。在此背景下,各大数字人源码厂商接收到的数字人直播系统搭建订单量成倍增长&a…

计算机组成原理(1):计算机系统概述

计算机底层和计算机原理!!!! 研究计算机硬件在底层是怎末运行的! 计算机硬件能识别的数据 用低电平表示0 用高电平表示1 皮卡丘使高电压! 计算机传递数据是用的电信号!!&#xff…

Java ExecutorService:你真的了解它吗?

文章目录 一、什么是ExecutorService?二、ExecutorService的核心功能三、如何创建和使用ExecutorService? 时光匆匆,又来到另一个里程碑,感谢粉丝们的陪伴,有你们真好~ 不水文啦,一起加油叭~ 一、什么是Exe…

C语言基础知识点(十三)结构体的深拷贝与浅拷贝

在C或C等语言中,结构体(Struct)是一种用户自定义的数据类型,它允许将不同类型的数据项组合成一个单一的类型。对于结构体的拷贝,存在深拷贝(Deep Copy)和浅拷贝(Shallow Copy&#x…

2024年,pdf文献热门翻译软件总结推荐

对于如今的时代,市面上存在各式各样的学术资料,对于没有语言天赋的我,看得眼花缭乱。看个学术资料都不知道要用哪个工具,试来试去和睦浪费时间。今天就我使用过的翻译软件中,整理了四款能帮助我们解决文献翻译难题的四…

免费自动化AI视频剪辑工具

下载地址:https://pan.quark.cn/s/3c5995da512e FunClip是一款完全开源、本地部署的自动化视频剪辑工具,通过调用阿里巴巴通义实验室开源的FunASR Paraformer系列模型进行视频的语音识别,随后用户可以自由选择识别结果中的文本片段或说话人&…