HarmonyOS鸿蒙Next中做好了登录样式,怎么用account kit实现点击登录华为账号

HarmonyOS鸿蒙Next中做好了登录样式,怎么用account kit实现点击登录华为账号 做好了登录样式,怎么用account kit功能,实现点击登录华为账号,头疼,看了手册,更头疼

cke_218.png


更多关于HarmonyOS鸿蒙Next中做好了登录样式,怎么用account kit实现点击登录华为账号的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

开发者你好,参考以下方案,如果遇到其他问题,请您提供具体的场景描述,欢迎继续提问:

【解决方案】 Account Kit提供了华为账号一键登录华为账号登录静默登录等多种登录方式,应用可根据实际场景选择使用其中一种或多种方式进行账号登录。 代码示例可以参考:华为账号服务

典型问题有: Q:华为账号登录是否需要接入认证协议? A:当前华为账号登录官网中并没有要求华为账号登录需要接入认证协议,当前正常的华为账号登录不需要有华为认证协议。

Q:华为账号登录的圆形按钮样式是固定的吗,可以修改吗? A:华为官网华为账号登录按钮里面提供了按钮样式和要求,当前是建议使用文档中样式,不强制使用,开发者可以根据应用风格修改背景颜色。

Q:模拟器是否支持华为账号登录? A:当前除了Mac x86系统模拟器不再迭代,无法使用华为账号登录,Mac ARM和Windows系统最新版模拟器都可以支持华为账号登录。

Q:一键登录是否支持H5接入? A:支持。当前渲染H5页面依赖的是ArkWeb能力,将一键登录Button直接渲染到H5页面,依赖的是ArkWeb同层渲染(当非系统框架的UI组件功能或性能不如系统组件时,可使用同层渲染技术,通过ArkUI组件渲染这些组件),应用侧(ArkTS)与前端页面(H5)的数据交互可参考建立应用侧与前端页面数据通道。 完整demo参考:基于H5使用 Account Kit 提供的华为账号一键登录 Button 组件登录流程

Q:在使用华为一键登录SDK时,应用是否会收集用户的个人信息(包括但不限于设备标识信息、华为账号和密码、设备Mac地址、唯一识别码如IMEI/AndroidID/IDFA/OPENUDID/GUID、SIM卡IMSI信息等)?如果会收集个人信息,请详细列举会收集哪些具体信息。 A:

  1. 在华为账号一键登录的过程中,华为账号本身不会主动收集用户的个人信息(包括但不限于设备标识信息、设备Mac地址、唯一识别码如IMEI/AndroidID/IDFA/OPENUDID/GUID、SIM卡IMSI信息等)。
  2. 但在应用使用一键登录功能时,确实会从华为账号获取用户的手机号,以及华为账号的openid、unionid等标识信息。除此之外,并不会收集用户的华为账号密码或其他敏感设备标识信息。详情可参考华为处理的个人数据清单

Q:使用华为账号快速登录功能,授权获取的手机号是华为账号绑定的手机号还是本机号码?如果有两张手机卡,能否获取两个手机号? A:快速登录获取的手机号是登录华为账号的手机号,无法获取SIM卡的手机号。

Q:一键登录是如何对比华为账号绑定号码与SIM卡手机号? A:在应用需要校验华为账号绑定的手机号是否与本机SIM卡一致的场景下,可以通过getMobileNumberConsistency方法获取手机号一致性状态,使用Promise异步回调,返回结果见ConsistencyState

Q:华为一键登录的回调地址(redirect_uri)作用是什么? A:如果是HarmonyOS NEXT应用实现一键登录,不用设置回调地址,Authorization Code在客户端就可以获取;如果是非HarmonyOS NEXT应用或者非app的web应用,需要集成华为帐号SDK的应用,则需要通过回调地址(redirect_uri)来获取授权码(Authorization Code)。

Q:华为账号一键登录是否支持安卓、iOS端使用? A:暂不支持iOS端集成。安卓可以通过集成Account KitSDK实现,次登录应用需要用户授权确认,后续即可一键登录。

Q:使用华为账号登录需要额外申请权限吗? A:在进行代码开发前,请确保已完成配置签名和指纹、配置Client ID。此场景无需申请账号权限。

Q:华为账号是否支持网页版扫一扫直接登录? A:华为账号不支持网页版扫码登录,暂时没有开放相关接口。当前Account Kit支持哪些登录方式,请以官网指导为准。

Q:个人开发者(没有企业资质)如何使用华为账号服务?文档上华为账号一键登录都需要开发者必须为企业开发者。 A:华为账号一键登录需要申请账号权限,需要开发者必须为企业开发者才可以使用,个人开发者可以使用华为账号登录静默登录,这两种登录场景不需要申请账号权限

Q:如何获取应用当前登录的华为账号和系统当前登录的华为账号是否一致? A:应用在前台时可以订阅Account Kit提供的华为账号登录/登出广播事件,来感知华为账号的登录状态,实现用户登录/登出应用的逻辑。应用也可通过getHuaweiIDState实时查询华为账号登录状态。

Q:接入一键登录时采用了获取授权码的方式,没有获取手机号是否会对上线有影响? A:无手机号场景若应用仅需OpenID/UnionID即可完成登录,则不影响核心功能,使用手机号场景若业务强依赖手机号(如绑定手机),则上线后会导致功能异常,需紧急修复权限配置后重新提审

Q:在实现华为登录时,需要在AGC上配置指纹时,可以同时配置多个指纹吗? A:可以同时配置多个指纹。

Q:使用自定义按钮获取Authorization Code后使用一键登录的接口获取手机号是否可行? A:不可行,服务端获取手机号码只能使用华为账号一键登录第三步获取的Authorization Code。

Q:登录页面是网页然后和客户端做交互的,QuickLoginButtonComponent不能满足需求,除了这个还有其他方法获取吗? A:可以参照下方链接:在H5中集成一键登录

更多关于HarmonyOS鸿蒙Next中做好了登录样式,怎么用account kit实现点击登录华为账号的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,使用Account Kit实现华为账号登录,需先配置应用签名和开启Account Kit服务。在登录按钮的点击事件中,调用getAccountAuthIntent方法获取授权意图,然后通过startAbilityForResult启动授权页面。授权结果通过onAbilityResult回调处理,成功后可获取用户账号信息。

在HarmonyOS Next中,使用Account Kit实现华为账号登录,核心是调用signIn接口。你已做好UI,只需在按钮点击事件中绑定以下逻辑:

  1. 导入模块:在页面顶部导入@kit.AccountKit
  2. 获取AccountAuthManager实例let accountAuthManager = account.getAccountAuthManager();
  3. 调用登录方法:在按钮的onClick事件中,使用accountAuthManager.signIn()发起授权请求。你需要配置AuthOption(至少包含authScope,如[account.Constants.INFORMATION_ACCOUNT])和AuthRequest(通常包含authTypeaccount.Constants.LOCAL)。
  4. 处理回调signIn返回一个Promise,在.then()中获取授权结果(AuthResult),成功后即可拿到用户标识(openId等)。

关键代码示例(ArkTS)

import { account } from '@kit.AccountKit';

// 在按钮点击事件中
async function onSignInClick() {
  try {
    let accountAuthManager = account.getAccountAuthManager();
    let authOption: account.AuthOption = {
      authScope: [account.Constants.INFORMATION_ACCOUNT]
    };
    let authRequest: account.AuthRequest = {
      authType: account.Constants.LOCAL
    };
    let authResult = await accountAuthManager.signIn(authOption, authRequest);
    // 登录成功,authResult中包含openId等信息
    console.info('Sign in success, openId: ' + authResult.openId);
  } catch (err) {
    // 处理登录失败
    console.error('Sign in failed: ' + JSON.stringify(err));
  }
}

确保已在module.json5中声明ohos.permission.ACCOUNT_MANAGER权限。这样,点击你的登录按钮即可触发华为账号授权流程。

回到顶部