ArkTS获取设备信息及OpenID
2025-03-18 16:32:52
140次阅读
0个评论
在当下数字化浪潮中,HarmonyOS Next 以其卓越的性能和强大的生态能力,成为众多开发者关注的焦点。运用 ArkTS 进行 HarmonyOS Next 原生应用开发,不仅能享受到该语言简洁高效的编程体验,还能深度挖掘系统潜力。在实际的应用开发过程中,获取设备信息或者 Openid 是极为常见且关键的需求。设备信息可帮助开发者精准适配不同硬件,优化应用性能;而 Openid 则能助力实现用户身份的精准识别与管理,提升应用的安全性和个性化服务水平。下面,我们就来详细探讨如何达成这一目标。
可获取到的设备信息包括
- deviceType: 设备类型
- manufacture: 设备厂家名称。
- brand: 设备品牌名称
- marketName: 外部产品系列。
- productSeries: 产品系列。
- productModel: 认证型号。
- softwareModel: 内部软件子型号。
- hardwareModel: 硬件版本号。
- hardwareProfile: 硬件Profile。
- bootloaderVersion: Bootloader版本号。
- displayVersion: 产品版本。
- osFullName: 系统版本,版本格式。
- buildVersion:Build版本号,标识编译构建的版本号。
- sdkApiVersion:系统软件API版本。
- versionId:版本ID。
- distributionOSName:发行版系统名称。
- distributionOSApiVersion:发行版系统api版本。
代码如下: 获取设备信息需导入模块 import { deviceInfo } from '@kit.BasicServicesKit';
例程
let sdkApiVersionInfo: number = deviceInfo.sdkApiVersion;
let brandInfo: string = deviceInfo.brand;
let marketNameInfo: string = deviceInfo.marketName;
let displayVersionInfo: string = deviceInfo.displayVersion;
let distributionOSApiVersion: number = deviceInfo.distributionOSApiVersion;
let osFullName:string = deviceInfo.osFullName;
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_METADATA;
let appdata = bundleManager.getBundleInfoForSelfSync(bundleFlags);
let appVersion = appdata.versionName;
OpenID是一种去中心化的身份验证协议,旨在为用户提供一种便捷、安全的方式来登录不同的网站和应用程序,而无需为每个平台单独创建和管理用户名与密码。以下是关于OpenID的简单介绍:
- 工作原理:用户选择一个支持OpenID的身份提供商(如谷歌、微软等),当用户访问需要登录的网站或应用时,可通过该身份提供商进行身份验证。用户向身份提供商发送认证请求,身份提供商验证用户身份后,将用户信息返回给请求的网站或应用,从而实现登录。
- 优点
- 便捷性:用户只需记住在身份提供商处的登录信息,即可访问多个支持OpenID的平台,无需在每个平台分别注册和登录,节省了时间和精力。
- 安全性:避免了用户在多个平台使用相同或相似的用户名和密码,降低了因密码泄露导致的安全风险。同时,身份提供商通常具有完善的安全机制和加密技术,保障用户身份信息的安全传输和存储。
- 应用场景:广泛应用于各种需要用户登录和身份验证的场景,如社交媒体平台、电商网站、在线办公软件等。例如,用户可以使用自己的微信账号作为OpenID登录到其他合作的应用或网站中,快速完成身份验证并使用相关服务。
华为账号一键登录(获取手机号和UnionID/OpenID)场景,应用服务器向华为账号服务器调用该接口获取UnionID,OpenID,华为账号绑定的手机号码及其相关信息。该服务仅对中国境内(不包含中国香港、中国澳门、中国台湾)用户提供。
获取OpenID的方法如下 导入模块
import { authentication } from '@kit.AccountKit';
import { BusinessError } from '@kit.BasicServicesKit';
// 获取openID
// Create a login request and set parameters
let loginRequest = new authentication.HuaweiIDProvider().createLoginWithHuaweiIDRequest();
loginRequest.forceLogin = false;
// Execute login request
let controller = new authentication.AuthenticationController();
controller.executeRequest(loginRequest).then((data) => {
let loginWithHuaweiIDResponse = data as authentication.LoginWithHuaweiIDResponse;
let openID = loginWithHuaweiIDResponse.data?.openID
}).catch((error: BusinessError) => {
hilog.error(0x0000, 'testTag', 'error: %{public}s', JSON.stringify(error));
if (error.code == authentication.AuthenticationErrorCode.ACCOUNT_NOT_LOGGED_IN) {
// HUAWEI ID is not logged in, it is recommended to jump to the login guide page
}
});
通过获取设备信息与OpenID,开发者得以打造更适配、安全且个性化的HarmonyOS Next原生应用。希望本文能助力大家在开发中顺利运用这些技术,让应用在性能、用户体验及数据管理等方面更上一层楼,为用户带来更优质的服务。
00
- 0回答
- 1粉丝
- 0关注
相关话题
- 获取链接文件信息
- 如何获取设备屏幕横竖屏状态
- HarmonyOS开发:手把手教你获取应用备案所需信息
- (八)ArkTS 跨设备开发实践
- (三六)ArkTS 与物联网设备交互开发
- (四)异构编译流水线:AOT、LTO 和 JIT 编译策略及设备优化
- 文件详细属性信息
- (六)ArkCompiler 对 ArkTS、TS、JS 语言的支持及编译优化
- 鸿蒙开发:信息标记组件
- 如何调用系统拍照并获取图片
- OpenHarmony: 如何获取当前HAP的BundleName
- TextInput组件获取焦点的几种场景
- 如何在Page中获取WindowStage实例
- OpenHarmony: 如何查询应用包的信息
- OpenHarmony应用:货币兑换数据获取与显示