HarmonyOS NEXT 实战之元服务:静态案例效果--航空出行

背景:

前几篇学习了元服务,后面几期就让我们开发简单的元服务吧,里面丰富的内容大家自己加,本期案例 仅供参考

先上本期效果图 ,里面图片自行替换

在这里插入图片描述

效果图1完整代码案例如下:

import { authentication } from '@kit.AccountKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { promptAction } from '@kit.ArkUI';

@Entry
@Component
struct Index {
  build() {
    Column() {
      Text($r('app.string.EntryAbility_label')).padding(5).fontSize(20)

      Column({ space: 20 }) {
        Row({ space: 5 }) {
          Text().width(8).height(8).backgroundColor(Color.Blue).borderRadius(4)
          Text('起始点:')
          TextInput({ text: '北京' }).width(200).fontSize(18)
        }

        Row({ space: 5 }) {
          Text().width(8).height(8).backgroundColor(Color.Green).borderRadius(4)
          Text('中间换乘点:')
          TextInput({ text: '上海' }).width(170).fontSize(18)
        }

        Row({ space: 5 }) {
          Text().width(8).height(8).backgroundColor(Color.Red).borderRadius(4)
          Text('终点站:')
          TextInput({ text: '巴基斯坦' }).width(200).fontSize(18)
        }

      }
      .height('30%')
      .width('90%')
      .alignItems(HorizontalAlign.Start)
      .padding(16)
      .margin({ top: 30 })
      .borderWidth(1)
      .borderRadius(10)
      .borderColor(Color.Gray)

      Button('确定行程')
        .fontColor(Color.White)
        .height(40)
        .margin({ top: 50 })
        .backgroundColor('#0CE5FF')
        .width('80%')
        .onClick(() => {
          promptAction.showToast({
            message: '今日机器出现故障,请找工作室人员解决'
          });
        })


      Row() {
        Text('出行灵感')
          .fontSize(18)
          .fontColor(Color.Black)

        Text('上海出行 >')
          .fontSize(15)
          .fontColor(Color.Black)
      }
      .justifyContent(FlexAlign.SpaceBetween)
      .width('90%')
      .padding(10)
      .onClick(() => {
      })
      .margin({ top: 50 })

      Row({ space: 20 }) {
        Column({ space: 10 }) {
          Text('港澳台游').fontWeight(FontWeight.Bold).fontSize(15).fontColor(Color.White)
          Text('购物与美食的天堂').fontSize(10).fontColor('#222222')
          Column({ space: 10 }) {
            Text('上海   ->   澳门').fontWeight(FontWeight.Bold).fontSize(13).fontColor('#5A5A5A')
            Row() {
              Text('12月30日 | 周一').fontSize(10).fontColor('#CAC8C9')
              Text('¥400').fontSize(15).fontColor(Color.Red).fontWeight(FontWeight.Bold).margin({ left: 8 })
            }
          }
          .width('100%')
          .borderRadius(4)
          .backgroundColor('#F5F9F8')
          .padding(8)
          .alignItems(HorizontalAlign.Start)

          Column({ space: 10 }) {
            Text('上海   ->   香港').fontWeight(FontWeight.Bold).fontSize(13).fontColor('#5A5A5A')
            Row() {
              Text('12月11日 | 周三').fontSize(10).fontColor('#CAC8C9')
              Text('¥456').fontSize(15).fontColor(Color.Red).fontWeight(FontWeight.Bold).margin({ left: 8 })
            }
          }
          .width('100%')
          .borderRadius(4)
          .backgroundColor('#F5F9F8')
          .padding(8)
          .alignItems(HorizontalAlign.Start)

        }
        .width('40%')
        .borderRadius(4)
        .backgroundColor('#73DCBD')
        .padding(8)
        .alignItems(HorizontalAlign.Start)

        Column({ space: 10 }) {
          Text('东南亚游').fontWeight(FontWeight.Bold).fontSize(15).fontColor(Color.White)
          Text('体验东南亚热情').fontSize(10).fontColor('#222222')
          Column({ space: 10 }) {
            Text('上海   ->   普吉岛').fontWeight(FontWeight.Bold).fontSize(13).fontColor('#5A5A5A')
            Row() {
              Text('12月3日 | 周一').fontSize(10).fontColor('#CAC8C9')
              Text('¥600').fontSize(15).fontColor(Color.Red).fontWeight(FontWeight.Bold).margin({ left: 8 })
            }
          }
          .width('100%')
          .borderRadius(4)
          .backgroundColor('#F5F9F8')
          .padding(8)
          .alignItems(HorizontalAlign.Start)

          Column({ space: 10 }) {
            Text('上海   ->   曼谷').fontWeight(FontWeight.Bold).fontSize(13).fontColor('#5A5A5A')
            Row() {
              Text('12月01日 | 周日').fontSize(10).fontColor('#CAC8C9')
              Text('¥607').fontSize(15).fontColor(Color.Red).fontWeight(FontWeight.Bold).margin({ left: 8 })
            }
          }
          .width('100%')
          .borderRadius(4)
          .backgroundColor('#F5F9F8')
          .padding(8)
          .alignItems(HorizontalAlign.Start)

        }
        .width('40%')
        .borderRadius(4)
        .backgroundColor('#41C7FF')
        .padding(8)
        .alignItems(HorizontalAlign.Start)
      }

    }
    .height('100%')
    .width('100%')
    .margin({ top: 60 })
    .backgroundColor('#EFD16E')

  }

  aboutToAppear() {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
    this.loginWithHuaweiID();
  }

  /**
   * Sample code for using HUAWEI ID to log in to atomic service.
   * According to the Atomic Service Review Guide, when a atomic service has an account system,
   * the option to log in with a HUAWEI ID must be provided.
   * The following presets the atomic service to use the HUAWEI ID silent login function.
   * To enable the atomic service to log in successfully using the HUAWEI ID, please refer
   * to the HarmonyOS HUAWEI ID Access Guide to configure the client ID and fingerprint certificate.
   */
  private loginWithHuaweiID() {
    // Create a login request and set parameters
    let loginRequest = new authentication.HuaweiIDProvider().createLoginWithHuaweiIDRequest();
    // Whether to forcibly launch the HUAWEI ID login page when the user is not logged in with the HUAWEI ID
    loginRequest.forceLogin = false;
    // Execute login request
    let controller = new authentication.AuthenticationController();
    controller.executeRequest(loginRequest).then((data) => {
      let loginWithHuaweiIDResponse = data as authentication.LoginWithHuaweiIDResponse;
      let authCode = loginWithHuaweiIDResponse.data?.authorizationCode;
      // Send authCode to the backend in exchange for unionID, session

    }).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

      }
    });
  }
}



最近文章>>>>>>>>>>>

HarmonyOS NEXT实战:元服务与应用 APP 发布应用市场的详细步骤与流程

若本文对您稍有帮助,诚望您不吝点赞,多谢。

有兴趣的同学可以点击查看源码

  • gitee:https://gitee.com/jiaojiaoone/explore-harmony-next/tree/case%2Fwanandroid/
  • github:https://github.com/JasonYinH/ExploreHarmonyNext.git

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

福特汽车物流仓储系统WMS:开源了,可直接下载

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。欢迎大家到本文底部评论区留言。 近日,福特汽车公司推出了其广受好评的仓库管理系统GreaterWMS(更大仓库管理系统)的开源版本,意味着各行…

STM32完全学习——FLASH上FATFS文件管理系统

一、需要移植的接口 我们通过看官网的手册,可以看到我们只要完成下面函数的实现,就可以完成移植。我们这里只移植前5个函数,获取时间的函数我们不在这里移植。 二、移植接口函数 DSTATUS disk_status (BYTE pdrv /* Physical drive nmuber…

pyqt5冻结+分页表

逻辑代码 # -*- coding: utf-8 -*- import sys,time,copy from PyQt5.QtWidgets import QWidget,QApplication, QDesktopWidget,QTableWidgetItem from QhTableWidgetQGN import Ui_QhTableWidgetQGN from PyQt5.QtCore import Qt from PyQt5 import QtCore, QtGui, QtWidgets…

Windows 使用 非安装版MySQL 8

1.下载MySQL 8 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.40-winx64.zip 2.创建my.ini 下载解压后,发现根目录没有my.ini文件,需手动创建 my.ini # For advice on how to change settings please see # http://dev.mysql.com/doc/refma…

海外招聘丨 苏黎世联邦理工学院—机器学习在社会和政治科学中的应用博士后

雇主简介 苏黎世联邦理工学院是世界领先的科技大学之一。我们以优质的教育、尖端的基础研究和将新知识直接转化为社会而闻名。来自 120 多个国家的 30,000 多名学生认为我们的大学是一个鼓励独立思考和激励卓越的环境的地方。 我们位于欧洲中心,但与世界各地建立联…

微信小程序中遇到过的问题

记录微信小程序中遇到的问题(持续更新ing) 问题描述:1. WXML中无法直接调用JavaScript方法。2. css中无法直接引用背景图片。3. 关于右上角胶囊按钮。4. 数据绑定问题。5. 事件处理问题。 问题描述: 1. WXML中无法直接调用JavaSc…

idea 8年使用整理

文章目录 前言idea 8年使用整理1. 覆盖application配置2. 启动的时候设置编辑空间大小,并忽略最大空间3. 查询类的关系4. 查看这个方法的引用关系5. 查看方法的调用关系5.1. 查看被调用关系5.2. 查看调用关系 6. 方法分隔线7. 选择快捷键类型8. 代码预览插件9. JReb…

RAGFLOW使用笔记【更新ing】

0.引言 本文记录使用RAGFLOW的一些问题以及解决办法,它以笔记的形式存在,方便我以后回顾自己的学习工作。 1.RAGFLOW上传文件大小默认是128M,如何修改上传文件大小? 更新ragflow/docker/.env中的MAX_CONTENT_LENGTH 环境变量 然后同步更新…

ubuntu22.04安装PaddleX3

PaddleOCR 安装过程可以参考PaddleX本地安装教程 我的电脑环境配置: ubuntu22.04 cuda11.8(之前安装的是12.4没有匹配的paddle-gpu;这里改成11.8) 一、安装基础环境 1、 conda create -n ppx1 python3.10 2、 conda activate ppx1 3、…

Android 之 Activity 的启动模式(launchMode)

一、Activity 启动模式 在实际项目中&#xff0c;应该根据项目的实际需要来为每个 Activity 指定恰当的启动模式 launchMode。启动模式一共有四种&#xff0c;分别是 standard、singleTop、singleTask 和 singleInstance。可以在 AndroidManifest.xml 中通过给 <activity&g…

软件老化分析

软件老化 课程&#xff1a;软件质量分析 作业 解答 Python代码如下&#xff1a; n int(input("类别数&#xff1a;")) theta list(map(float, input("各个类别的权重&#xff1a;").split())) m list(map(int, input("各个类别的度量元数量&…

Jenkins 构建流水线

在 Linux 系统上安装 Jenkins 服务&#xff0c;以及配置自动化构建项目 前置准备环境&#xff1a;docker、docker-compose、jdk、maven 一、环境搭建 1. Jenkins 安装 &#xff08;1&#xff09;拉取镜像 # 安装镜像包&#xff0c;默认安装最新版本 docker pull jenkins/jen…

5G学习笔记之Non-Public Network

目录 0. NPN系列 1. 概述 2. SNPN 2.1 SNPN概述 2.2 SNPN架构 2.3 SNPN部署 2.3.1 完全独立 2.3.2 共享PLMN基站 2.3.3 共享PLMN基站和PLMN频谱 3. PNI-NPN 3.1 PNI-NPN概述 3.2 PNI-NPN部署 3.2.1 UPF独立 3.2.2 完全共享 0. NPN系列 1. NPN概述 2. NPN R18 3. 【SNPN系列】S…

若依plus apifox导入接口显示为空

项目已经正常启动 访问接口有些没问题&#xff0c;有些有问题 其他模块都可以正常导入 解决&#xff1a;

elementPlus消息组件多按钮案例

let customClass zsl-el-message-box efb.messageBox({title: 操作提示,showConfirmButton: false,customClass,message: efb.VNode(div, null, [efb.VNode(style, null, .${customClass} .el-message-box__message {width: 100%;}),efb.VNode(div, null, hello world),efb.VN…

计算机网络:应用层 —— 网络应用模式

文章目录 客户—服务器方式和对等方式客户/服务器方式 (C/S方式)工作流程特点 对等方式 (P2P方式)工作流程P2P 应用特点 客户—服务器方式和对等方式 网络应用程序运行在处于网络边缘的不同的端系统上&#xff0c;通过彼此间的通信来共同完成某项任务。 开发一种新的网络应用…

科技创新 数智未来|清科·沙丘投研院走进竹云

12月20日&#xff0c;清科沙丘投研院带领企投家团队走进竹云交流分享&#xff0c;聚焦技术创新、企业数字化管理、行业前沿应用案例等热点议题&#xff0c;深入探讨数字技术如何点燃企业高质量发展的澎湃动力&#xff0c;共话企业数字化、智能化发展之道。 达晨财智股权管理部…

外连接转AntiJoin的应用场景与限制条件 | OceanBase SQL 查询改写系列

在《SQL 改写系列&#xff1a;外连接转内连接的常见场景与错误》一文中&#xff0c;我们了解到谓词条件可以过滤掉连接结果中的 null 情形的&#xff0c;将外连接转化为内连接的做法是可行的&#xff0c;正如图1中路径(a)所示。此时&#xff0c;敏锐的你或许会进一步思考&#…

Java - 日志体系_Apache Commons Logging(JCL)日志接口库

文章目录 官网1. 什么是JCL&#xff1f;2. JCL的主要特点3. JCL的核心组件4. JCL的实现机制5. SimpleLog 简介6. CodeExample 1 &#xff1a; 默认日志实现 (JCL 1.3.2版本)Example 2 &#xff1a; JCL (1.2版本&#xff09; Log4J 【安全风险高&#xff0c;请勿使用】 7. 使用…

mavlink移植到单片机stm32f103c8t6,实现接收和发送数据

前言&#xff1a; 好久没更新博客了&#xff0c;这两个月真的是异常的忙&#xff0c;白天要忙着公司里的事&#xff0c;晚上还要忙着修改小论文&#xff0c;一点自己的时间都没有了&#xff0c;不过确确实实是学到了很多东西&#xff0c;对无人机的技术研究也更深了一些。不过好…