华为HarmonyOS实现跨多个子系统融合的场景化服务 -- 1 构建快速验证手机号Button

server/2024/12/20 9:34:42/

场景介绍

快速验证手机号Button功能用于帮助开发者向用户发起手机号申请,应用在满足《常见类型移动互联网应用程序必要个人信息范围规定》(对第三方网站的内容,华为公司不承担任何责任)中使用手机号的必要业务场景,经用户同意后,应用可获取手机号,为用户提供相应服务(详见场景介绍)。

说明

应用/元服务仅在首次使用时需要用户进行授权,授权成功后,后续只验证授权手机号,不可修改。

前提条件

参见开发前提。

效果图展示

单击“快速验证手机号”按钮,拉起验证界面(完整流程可参考手机号快速验证)。

开发步骤

  1. 导入Scenario Fusion Kit模块以及相关公共模块。

     
    1. import { FunctionalButton, functionalButtonComponentManager } from '@kit.ScenarioFusionKit';
    2. import { hilog } from '@kit.PerformanceAnalysisKit';

  2. 在容器中声明FunctionalButton,指定Button的openType,并设置对应的回调函数,代码如下:

     
    1. @Entry
    2. @Component
    3. struct Index {
    4. build() {
    5. Row() {
    6. Column() {
    7. // 声明FunctionalButton
    8. FunctionalButton({
    9. params: {
    10. // OpenType.GET_PHONE_NUMBER表示Button为快速验证手机号类型
    11. openType: functionalButtonComponentManager.OpenType.GET_PHONE_NUMBER,
    12. label: '快速验证手机号',
    13. // 调整Button样式
    14. styleOption: {
    15. styleConfig: new functionalButtonComponentManager.ButtonConfig()
    16. .fontSize(20)
    17. .fontColor(Color.Black)
    18. },
    19. },
    20. // OpenType为“GET_PHONE_NUMBER”时,回调必须选择“onGetPhoneNumber”
    21. controller: new functionalButtonComponentManager.FunctionalButtonController()
    22. .onGetPhoneNumber((err, data) => {
    23. if (err) {
    24. // 错误日志处理
    25. hilog.error(0x0000, "testTag", "error: %{public}d %{public}s", err.code, err.message);
    26. return;
    27. }
    28. // 成功日志处理
    29. hilog.info(0x0000, "testTag", "succeeded in authenticating");
    30. // 开发者处理AuthorizationCode
    31. let authorizationCode = data.code;
    32. })
    33. })
    34. }
    35. .width('100%')
    36. }
    37. .height('100%')
    38. }
    39. }

    说明

    • openType参数填写“functionalButtonComponentManager.OpenType.GET_PHONE_NUMBER”指定Button为快速验证手机号类型。
    • controller参数必须对应填写“new functionalButtonComponentManager.FunctionalButtonController().onGetPhoneNumber”。
    • 若成功调用,可通过回调函数中的临时登录凭证(Authorization Code)获取真实手机号,临时登录凭证时效5分钟,具体操作可参考服务端开发。

    其他参数请参考:FunctionalButton(Button组件)。


http://www.ppmy.cn/server/151667.html

相关文章

Python 写的《桌面时钟》屏保

原代码: # 日历式时钟 # 导入所需的库 # 作者:Hoye # 日期:2024年12月16日 # 功能:显示当前日期、星期、时间,并显示模拟时钟 import tkinter as tk from tkinter import ttk import time import math import sysdef …

【证券从业】金融市场基础知识——第一章 金融市场体系

1.金融市场的定义: 与产品市场不同,金融市场是要素市场的一种。金融市场是创造和交易金融资产的市场,是以金融资产为交易对象而形成的供求关系和交易机制的总和。金融市场参与者不仅在有形的固定场所进行金融资产交易,还通过各种线上手段进行…

(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验一(下)----空间数据的编辑与处理(超超超详细!!!)

续上篇博客(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验一(上)----空间数据的编辑与处理(超超超详细!!!)-CSDN博客 继续更新 目录 什么是拓扑? 1.3.5道路拓…

拒绝 Helm? 如何在 K8s 上部署 KRaft 模式 Kafka 集群?

首发:运维有术 今天分享的主题是:不使用 Helm、Operator,如何在 K8s 集群上手工部署一个开启 SASL 认证的 KRaft 模式的 Kafka 集群? 本文,我将为您提供一份全面的实战指南,逐步引导您完成以下关键任务&a…

MFC 应用程序语言切换

在开发多语言支持的 MFC 应用程序时,如何实现动态语言切换是一个常见的问题。在本文中,我们将介绍两种实现语言切换的方式,并讨论其优缺点。同时,我们还会介绍如何通过保存配置文件来记住用户的语言选择,以及如何在程序…

PugiXML,一个高效且简单的 C++ XML 解析库!

嗨,大家好!我是一行。今天要给大家介绍 PugiXML,这可是 C 里处理 XML 数据的得力助手。它能轻松地读取、修改和写入 XML 文件,就像一个专业的 XML 小管家,不管是解析配置文件,还是处理网页数据,…

QMainwindow的鼠标跟踪事件不触发问题

一、无边框窗口实现代码 1.1 头文件 class EtcTestTool : public QMainWindow {Q_OBJECTpublic:EtcTestTool(QWidget *parent Q_NULLPTR); private:void InitialUi();//... protected:void mousePressEvent(QMouseEvent*event)override;void mouseReleaseEvent(QMouseEvent*…

《机器学习》支持向量机

结构风险(Structural Risk)和经验风险(Empirical Risk) 在机器学习和统计学习理论中,结构风险(Structural Risk)和经验风险(Empirical Risk)是评估模型性能的两个重要概…