首页 > 其他分享 >鸿蒙初学001-构建第一个ArkTS应用(Stage模型)

鸿蒙初学001-构建第一个ArkTS应用(Stage模型)

时间:2024-10-10 20:14:58浏览次数:7  
标签:src ArkTS main 001 Kit json5 message Stage 页面

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-dev-guide-V5

HarmonyOS SDK介绍:

从HarmonyOS NEXT Developer Preview1(API 11)版本开始,HarmonyOS SDK以Kit维度提供丰富、完备的开放能力,涵盖应用框架、系统、媒体、图形、应用服务、AI六大领域,例如:

  • 应用框架相关Kit开放能力:Ability Kit(程序框架服务)、ArkUI(方舟UI框架)等。
  • 系统相关Kit开放能力:Universal Keystore Kit(密钥管理服务)、Network Kit(网络服务)等。
  • 媒体相关Kit开放能力:Audio Kit(音频服务)、Media Library Kit(媒体文件管理服务)等。
  • 图形相关Kit开放能力:ArkGraphics 2D(方舟2D图形服务)、Graphics Accelerate Kit(图形加速服务)等。
  • 应用服务相关Kit开放能力:Game Service Kit(游戏服务)、Location Kit(位置服务)等。
  • AI相关Kit开放能力:Intents Kit(意图框架服务)、HiAI Foundation Kit(HiAI Foundation服务)等。

开发工具:DevEco Studio工具

1、创建一个应用

二、创建后的项目目录

目录介绍:

  • AppScope > app.json5:应用的全局配置信息,详见app.json5配置文件
  • entry:HarmonyOS工程模块,编译构建生成一个HAP包。
    • src > main > ets:用于存放ArkTS源码。
    • src > main > ets > entryability:应用/服务的入口。
    • src > main > ets > entrybackupability:应用提供扩展的备份恢复能力。
    • src > main > ets > pages:应用/服务包含的页面。
    • src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源分类与访问
    • src > main > module.json5:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见module.json5配置文件
    • build-profile.json5:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
    • hvigorfile.ts:模块级编译构建任务脚本。
    • obfuscation-rules.txt:混淆规则文件。混淆开启后,在使用Release模式进行编译时,会对代码进行编译、混淆及压缩处理,保护代码资产。详见开启代码混淆
    • oh-package.json5:用来描述包名、版本、入口文件(类型声明文件)和依赖项等信息。
  • oh_modules:用于存放三方库依赖信息。
  • build-profile.json5:工程级配置信息,包括签名signingConfigs、产品配置products等。其中products中可配置当前运行环境,默认为HarmonyOS。

  • hvigorfile.ts:工程级编译构建任务脚本。

  • oh-package.json5:主要用来描述全局配置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等。

三、编写页面

 ,在“Project”窗口,点击“entry > src > main > ets > pages”,打开“Index.ets”文件,进行页面的编写

添加一个按钮

//添加按钮,以响应用户点击
      Button(){
        Text('Next')
          .fontSize(30)
          .fontWeight(FontWeight.Bold)
      }
      .type(ButtonType.Capsule)
      .margin({
        top:20
      })
      .backgroundColor('#0D9FFB')
      .width('40%')
      .height('10%')

四、创建第二个页面

 

开发者也可以在右键点击“pages”文件夹时,选择“New > Page > Empty Page”,命名为“Second”,点击“Finish”完成第二个页面的创建。使用此种方式则无需再进行下文中第二个页面路由的手动配置。

 创建页面后自动添加的路由

 

第二个页面添加返回按钮

@Entry
@Component
struct Second  {
  @State message: string = 'Hello World';

  build() {
    Row(){
      Column(){
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)

        Button(){
          Text('返回')
            .fontSize(25)
            .fontWeight(FontWeight.Bold)
        }.type(ButtonType.Circle)
        .margin({
          top:20
        })
        .backgroundColor('#0D9FFB')
        .width('40%')
        .height('5%')
      }
      .width('100%')
    }.height('100%')
  }
}

添加按钮点击事件,做跳转操作:

跳转到第二个页面代码

router.pushUrl({
url:'pages/Second'
}).then(()=>{
console.log('to Second Page')
}).catch((err:BusinessError)=>{
console.error('跳转错误 ${err.Code}, ${err.message}')
})

路由返回代码:

 console.log('click back')
          try {
            router.back()
          }
          catch (err){
            let code=(err as BusinessError).code;
            let message=(err as BusinessError).message;
            console.error('Fail to Back ${code},message is ${message}')
          }

第一个ArtTS应用完成

 

标签:src,ArkTS,main,001,Kit,json5,message,Stage,页面
From: https://www.cnblogs.com/tangchun/p/18457013

相关文章

  • HarmonyOS NEXT 开发之ArkTS基础入门
    ArkTS是HarmonyOSNEXT的开发语言,它基于TypeScript并进行了扩展和优化。以下是一些基础语法知识点、示例用法及注意事项。一、ArkTS简介ArkTS是一种基于TypeScript的编程语言,主要用于HarmonyOS应用的UI界面和业务逻辑开发。它在TypeScript的基础上,进行了一些针对......
  • 001、下载并运行
    1、下载github,并放到自己的项目工程中2、确保直接电脑按照了node.js,输入cmd命令行看node,可以看到node版本是v20 3、在工程目录用命令行输入npmupdate 4、在命令行继续输入npmrundev5、可以正常登录了。 6、界面内容如下: ......
  • The 2023 ICPC Asia Hangzhou Regional Contest (The 2nd Universal Cup. Stage 22: H
    The2023ICPCAsiaHangzhouRegionalContest(The2ndUniversalCup.Stage22:Hangzhou)M.V-Diagram题意:给定一个“v图”,求平均值最大的子"v图"思路:原图的最低点以及左右两个点必须取,如何先取满左边或者右边在贪心即可voidsolve(){lln;cin>>n;vect......
  • TS_0001:同步加载数据
    1,TS同步加载数据onMounted(async()=>{const{data}:any=awaitgetMapExtScript({page:1,page_size:50});if(data&&data.list){scriptData.value=data.list;pagination.value.total=data.total;allData=data.li......
  • The 2nd Universal Cup. Stage 28: Chengdu 解题集
    A.AddOne2一个比较关键的想法是去考虑操作后什么样的数列是能够得到的,然后通过这个性质尝试得出比\(\{y_n\}\)大的最小合法数列,这个数列的和就是答案。将数列差分,你会发现如果要使\(x_i-x_{i+1}=d\)(这里不妨假设\(d>0\),我们等会可以再倒过来考虑\(d<0\)的位置),那么......
  • 鸿蒙应用示例:ArkTS中设置颜色透明度与颜色渐变方案探讨
    /***根据比例混合两个十六进制颜色值。*@paramcolorA第一个颜色的十六进制值,例如红色'#ff0000'。*@paramcolorB第二个颜色的十六进制值,例如黑色'#000000'。*@paramratio混合比例,0表示仅返回colorA,1表示仅返回colorB,介于0和1之间的值会混合两个颜色。......
  • 20241001
    桌游制造我们可以对于每种图案记录拥有这种图案的有那些圆片,然后我们枚举每一个圆片,枚举这个圆片上面的图案,枚举拥有这种图案的圆片还有哪些,然后分别打上标记,如果有一个圆片明明已经有标记了,然而又要被打一次标记,那么我们可以直接输出\(NO\)如果标记都已经打完了,可还是......
  • The 3rd Universal Cup. Stage 8: Cangqian
    Preface战术最失败的一集,徐神从开场就被模拟题关住了,直到4h30min的时候才放出来然后剩下的题也开的不顺,最后感觉好多题都没写就7题下班了这场也是延续了之前几场的一贯画风,最后1h我在狂暴鸿儒一个题,然后挂飞了也没过,赛后稍微一想就发现又犯了个唐氏错误A.Bingo沟槽的......
  • 题解:P11137 [APC001] B - Checker
    注意到每个字符串长度相同,所以我们可以按照题意逐个遍历小K的题目和所有题库里的题目,统计相同位置字符相同的个数,如果大于\(\left\lceil\frac{k}{2}\right\rceil\),这两个题目就是重题。代码:#include<bits/stdc++.h>usingnamespacestd;boolc(stringa,stringb){in......
  • ABC 模拟赛 | A Passing Contest 001题解记录(A,B,C,D)
    比赛链接https://www.luogu.com.cn/contest/126344[APC001]A-CT不必多说,多次取模#include<iostream>#include<algorithm>#include<string>#include<string.h>#include<queue>#include<deque>#include<math.h>#include<map>......