美文网首页
Harmony OS第一课

Harmony OS第一课

作者: 渚清与沙白 | 来源:发表于2024-05-08 09:04 被阅读0次
    语法说明

    struct是ArkTs新增的关键字,用于自定义组件或自定义弹窗的关键字。可以包含属性和方法。
    build方法 用于声明自定义组件的UI结构
    组件行书可用于声明自定义组件的参数,使得自定义组件更为通用。

    装饰器

    @Component
    @State
    @Entity
    @Link
    @Prop
    @Builder
    @CustomDialog
    @provide
    @custome
    @watch
    @Component 表示这是个自定义组件; @Entry 则表示这是个入口组件; @State 表示组件中的状态变量,此状态变化会引起 UI 变更。

    自定义组件

    @Component装饰的struct表示该结构具有组件化的能力,能够成为一个独立的组件。
    自定义组件必须定义build方法,在其中进行UI描述。

    @Entity装饰的自定义组件用作页面默认的入口组件,加载页面时,将首先创建并呈现@Entity装饰的自定义组件。
    一个页面有且仅能有一个@Entity,只有被@Entity修饰的组件或者其子组件才会在页面上显示。

    在组件定义时,使用export关键字导出组件,在父组件使用子组件时,需要使用import关键字导入子组件。

    自定义组件的生命周期是指从创建到销毁的过程,在这个过程中系统提供的生命周期回调函数,aboutToAppearaboutToDisappear
    aboutToAppear用作初始化数据,aboutToDisappear用作释放资源。

    WechatIMG31.jpg
    渲染控制

    条件渲染:if else if else
    循环渲染:ForEach迭代数组

    状态管理

    @State装饰器可以实现组件内部数据更新UI
    @Link装饰的变量可以和父组件的@State变量建立双向数据绑定。任何一方做的数据修改都会反映给另一方。

    应用程序框架

    UIAbility: 包含用户界面的应用组件。

    • 任务列表中的应用都是基于 UIAbility 实现的一个应用实例。每一个UIAbility 实例都对应一个最近任务列表中的任务。
    • 作为系统调度的单元,提供窗口,用于界面绘制。
    • 一个应用可以有一个,也可以有多个 UIAbility。
    • 一个 UIAbility 可以对应多个页面。
    UIAbility内页面之间的跳转及数据传递
    • 导入router 模块 import router from '@ohos.router'
    • router.pushUrl({url: 'page/Second', param: {key: 'ark'}})
    页面接收参数
    • 导入router 模块
    • 调用获取参数的方法。@State key:string = router.getParam()?.['key']
    返回上一页面
    • 调用router.back()
    UIAbility生命周期
    • onCreate()
      应用初始化
    • onWindowStageCreate()
      设置UI加载
      设置WindowStage的事件订阅(获椒|失焦、可见|不可见)
    • onForeground()
      UIAbility实例切换至前台触发,可见之前时触发申请系统需要的资源,或者重新申请在onBackground中释放的资源
    • onBackground()
      UIAbility实例切换至后台触发,完全不可见时触发。释放UI页面不可见时无用资源,或者在此回调中执行较为耗时的操作,如状态保存
    • onWindowStageDestroy()
      UIAbility销毁之前调用,释放UI页面资源
    • onDestroy()
      UIAbility销毁时触发,系统资源的释放,数据的保存


      image.png

    给应用添加通知

    • 基础类通知
      导入模块。import notification from '@ohos.notificationManager'
     // 描述通知
      let notificationRequest: notification.NotificationRequest = {
        id: 100,
        showDeliveryTime: true,
        deliveryTime: new Date().getTime(),
        content: {
          contentType: notification.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
          normal: {
            title: '通知内容标题',
            text: '通知内容详情',
            additionalText: '通知附加内容'
          }
        }
      }
    
      // 发布通知
      notification.publish(notificationRequest).then(()=>{
        // 发布成功
      }).catch((err)=>{
        // 发布失败
      });
    
    

    后台代理提醒

    提醒业务分为:倒计时提醒、日历提醒、闹钟提醒
    添加代理提醒使用权限
    reminderAgentManager 提供提醒定义、创建提醒、取消提醒等能力
    定义提醒实例:reminderAgentManager的ReminderRequest
    发布提醒:reminderAgentManager的publishReminder接口
    删除提醒:reminderAgentManager的cancelReminder接口
    修改提醒:先删除、再新增

    单位

    vp:尺寸单位
    fp:字体单位
    fr:grid行列个元素占比

    相关文章

      网友评论

          本文标题:Harmony OS第一课

          本文链接:https://www.haomeiwen.com/subject/rshdfjtx.html