欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 华为HarmonyOS实现跨多个子系统融合的场景化服务 -- 5 选择收货地址Button

华为HarmonyOS实现跨多个子系统融合的场景化服务 -- 5 选择收货地址Button

2025/5/12 9:20:10 来源:https://blog.csdn.net/pisceshsu/article/details/144500625  浏览:    关键词:华为HarmonyOS实现跨多个子系统融合的场景化服务 -- 5 选择收货地址Button

场景介绍

本章节将向您介绍如何使用选择收货地址Button功能,开发者可调用对应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.CHOOSE_ADDRESS表示Button为选择收货地址类型
    11. openType: functionalButtonComponentManager.OpenType.CHOOSE_ADDRESS,
    12. label: '选择收货地址',
    13. // 调整Button样式
    14. styleOption: {
    15. bgColor: functionalButtonComponentManager.ColorType.DEFAULT,
    16. size: functionalButtonComponentManager.SizeType.DEFAULT,
    17. plain: false,
    18. disabled: false,
    19. loading: false,
    20. hoverClass: functionalButtonComponentManager.HoverClassType.HOVER_CLASS,
    21. hoverStartTime: 0,
    22. hoverStayTime: 0,
    23. styleConfig: new functionalButtonComponentManager.ButtonConfig()
    24. .fontSize(20)
    25. .fontColor(Color.Black)
    26. },
    27. },
    28. // OpenType为“CHOOSE_ADDRESS”时,回调必须选择“onChooseAddress”
    29. controller: new functionalButtonComponentManager.FunctionalButtonController()
    30. .onChooseAddress((err, data) => {
    31. if (err) {
    32. // 错误日志处理
    33. hilog.error(0x0000, "testTag", "error: %{public}d %{public}s", err.code, err.message);
    34. return;
    35. }
    36. // 成功日志处理
    37. hilog.info(0x0000, "testTag", "succeeded in choosing address");
    38. // 获取Address info
    39. let userName: string = data.userName;
    40. let mobileNumber: string = data.mobileNumber as string;
    41. let countryCode: string = data.countryCode as string;
    42. let provinceName: string = data.provinceName as string;
    43. let cityName: string = data.cityName as string;
    44. let districtName: string = data.districtName as string;
    45. let streetName: string = data.streetName as string;
    46. let detailedAddress: string = data.detailedAddress;
    47. })
    48. })
    49. }.width('100%')
    50. }.height('100%')
    51. }
    52. }

    说明

    • openType参数填写“functionalButtonComponentManager.OpenType.CHOOSE_ADDRESS”指定Button为选择收货地址类型。
    • controller参数必须对应填写“new functionalButtonComponentManager.FunctionalButtonController().onChooseAddress”。

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词