- 博客(78)
- 收藏
- 关注
原创 HarmonyOS-使用call事件拉起指定UIAbility到后台
在卡片页面中布局两个按钮,点击其中一个按钮时调用postCardAction向指定UIAbility发送call事件,并在事件内定义需要调用的方法和传递的数据。需要注意的是,method参数为必选参数,且类型需要为string类型,用于触发UIAbility中对应的方法。同时,call能力提供了调用应用指定方法、传递数据的功能,使应用在后台运行时可以通过卡片上的按钮执行不同的功能。例如音乐卡片,卡片上提供播放、暂停等按钮,点击不同按钮将触发音乐应用的不同功能,进而提高用户的体验。
2024-03-04 09:07:36
995
原创 HarmonyOS-使用router事件跳转到指定UIAbility
接口的router能力,能够快速拉起卡片提供方应用的指定UIAbility,因此UIAbility较多的应用往往会通过卡片提供不同的跳转按钮,实现一键直达的效果。例如相机卡片,卡片上提供拍照、录像等按钮,点击不同按钮将拉起相机应用的不同UIAbility,从而提升用户的体验。在卡片页面中布局两个按钮,点击其中一个按钮时调用postCardAction向指定UIAbility发送router事件,并在事件内定义需要传递的内容。
2024-03-02 09:10:41
979
原创 HarmonyOS-卡片事件能力说明
ArkTS卡片中提供了postCardAction()接口用于卡片内部和提供方应用间的交互,当前支持router、message和call三种类型的事件,仅在卡片中可以调用。接口定义:postCardAction(component: Object, action: Object): void。以下介绍通过卡片事件实现的典型开发场景。
2024-03-01 08:57:31
1085
原创 HarmonyOS-卡片使用自定义绘制能力
对象在画布上进行自定义图形的绘制,如下示例代码实现了在画布的中心绘制了一个笑脸。ArkTS卡片开放了自定义绘制的能力,在卡片上可以通过。组件创建一块画布,然后通过。运行效果如下图所示。
2024-02-29 09:04:39
611
原创 HarmonyOS-卡片页面能力说明和使用动效能力
开发者可以使用声明式范式开发ArkTS卡片页面。如下卡片页面由DevEco Studio模板自动生成,开发者可以根据自身的业务场景进行调整。ArkTS卡片具备JS卡片的全量能力,并且新增了动效能力和自定义绘制的能力,支持的部分组件、事件、动效、数据管理、状态管理能力,详见“
2024-02-28 08:56:15
1702
原创 HarmonyOS卡片生命周期管理
FormExtensionAbility进程不能常驻后台,即在卡片生命周期回调函数中无法处理长时间的任务,在生命周期调度完成后会继续存在5秒,如5秒内没有新的生命周期回调触发则进程自动退出。在EntryFormAbility.ts中,实现FormExtensionAbility生命周期接口,其中在onAddForm的入参want中可以通过FormParam取出卡片的相关信息。进行处理,处理完成后使用updateForm通知卡片进行刷新。在EntryFormAbility.ts中,导入相关模块。
2024-02-27 14:01:23
1388
原创 HarmonyOS-配置卡片的配置文件
在上述FormExtensionAbility的元信息(“metadata”配置项)中,可以指定卡片具体配置信息的资源索引。例如当resource指定为$profile:form_config时,会使用开发视图的resources/base/profile/目录下的form_config.json作为卡片profile配置文件。FormExtensionAbility需要填写metadata元信息标签,其中键名称为固定字符串“ohos.extension.form”,资源为卡片的具体配置信息的索引。
2024-02-26 09:02:35
1577
原创 HarmonyOS创建一个ArkTS卡片
ArkTS卡片创建完成后,工程中会新增如下卡片相关文件:卡片生命周期管理文件(EntryFormAbility.ts)、卡片页面文件(WidgetCard.ets)和卡片配置文件(form_config.json)。在选择卡片的开发语言类型(Language)时,选择ArkTS选项,然后单击“Finish”,即可完成ArkTS卡片创建。在已有的应用工程中,创建ArkTS卡片,具体操作方式如下。根据实际业务场景,选择一个卡片模板。
2024-02-24 13:17:23
693
原创 HarmonyOS-ArkTS卡片运行机制和相关模块
ArkTS卡片实现原理ArkTS卡片渲染服务运行原理与JS卡片相比,ArkTS卡片支持在卡片中运行逻辑代码,为确保ArkTS卡片发生问题后不影响卡片使用方应用的使用,ArkTS卡片新增了卡片渲染服务用于运行卡片页面代码widgets.abc,卡片渲染服务由卡片管理服务管理。卡片使用方的每个卡片组件都对应了卡片渲染服务里的一个渲染实例,同一应用提供方的渲染实例运行在同一个虚拟机运行环境中,不同应用提供方的渲染实例运行在不同的虚拟机运行环境中,通过虚拟机运行环境隔离不同应用提供方卡片之间的资源与状态。
2024-02-23 09:50:50
1508
原创 HarmonyOS服务卡片开发指导(Stage模型)概述
服务卡片(以下简称“卡片”)是一种界面展示形式,可以将应用的重要信息或操作前置到卡片,以达到服务直达、减少体验层级的目的。卡片常用于嵌入到其他应用(当前卡片使用方只支持系统应用,如桌面)中作为其界面显示的一部分,并支持拉起页面、发送消息等基础的交互功能。
2024-02-22 09:29:07
994
原创 HarmonyOS-UIAbility组件间交互(设备内)
UIAbility是系统调度的最小单元。在设备内的功能模块之间跳转时,会涉及到启动特定的UIAbility,该UIAbility可以是应用内的其他UIAbility,也可以是其他应用的UIAbility(例如启动三方支付UIAbility)。本章节将从如下场景分别介绍设备内UIAbility间的交互方式。
2024-02-21 09:08:15
1944
原创 Harmony-UIAbility组件与UI的数据同步
基于HarmonyOS的应用模型,可以通过以下两种方式来实现UIAbility组件与UI之间的数据同步。:基于发布订阅模式来实现,事件需要先订阅后发布,订阅者收到消息后进行处理。:ArkTS引擎实例内部的一个全局对象,在ArkTS引擎实例内部都能访问。:ArkUI提供了AppStorage和LocalStorage两种应用级别的状态管理方案,可用于实现应用级别和UIAbility级别的数据同步。
2024-02-20 10:50:33
1571
原创 Harmony-UIAbility组件基本用法
UIAbility组件的基本用法包括:指定UIAbility的启动页面以及获取UIAbility的上下文。
2024-02-05 14:03:08
716
原创 HarmonyOS-UIAbility组件概述及生命周期
当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,会经过UIAbility实例的创建和销毁,或者UIAbility实例发生了前后台的状态切换。UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,如下图所示。图1UIAbility生命周期状态。
2024-01-31 09:05:38
1145
原创 HarmonyOS-Stage模型应用和组件及配置
在开发应用时,需要配置应用的一些标签,例如应用的包名、图标等标识特征的属性。图标和标签通常一起配置,可以分为应用图标、应用标签和入口图标、入口标签,分别对应。中配置bundleName标签,该标签用于标识应用的唯一性。应用图标和标签是在设置应用中使用,例如设置应用中的应用列表。Stage模型的应用需要配置应用图标和应用标签。应用图标和标签是在设置应用中使用,例如设置应用中的应用列表,会显示出对应的图标和标签。中配置icon标签。应用图标需配置为图片的资源索引,配置完成后,该图片即为应用的图标。
2024-01-30 09:14:35
1204
原创 HarmonyOS-Stage模型开发概述
下图展示了Stage模型中的基本概念。Stage模型概念图和ExtensionAbility组件Stage模型提供UIAbility和ExtensionAbility两种类型的组件,这两种组件都有具体的类承载,支持面向对象的开发方式。每个UIAbility类实例都会与一个WindowStage类实例绑定,该类提供了应用进程内窗口管理器的作用。它包含一个主窗口。也就是说UIAbility通过WindowStage持有了一个窗口,该窗口为ArkUI提供了绘制区域。
2024-01-29 09:30:43
1234
原创 HarmonyOS应用模型概述
应用模型是HarmonyOS为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。HarmonyOS应用模型的构成要素包括:应用组件应用组件是应用的基本组成单位,是应用的运行入口。用户启动、使用和退出应用过程中,应用组件会在不同的状态间切换,这些状态称为应用组件的生命周期。应用组件提供生命周期的回调函数,开发者通过应用组件的生命周期回调感知应用的。
2024-01-25 09:09:50
1401
原创 HarmonyOS-LazyForEach:数据懒加载
LazyForEach从提供的数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。当在滚动容器中使用了LazyForEach,框架会根据滚动容器可视区域按需创建组件,当组件滑出可视区域外时,框架会进行组件销毁回收以降低内存占用。
2024-01-24 09:33:41
2662
原创 HarmonyOS-ForEach:循环渲染
ForEach接口基于数组类型数据来进行循环渲染,需要与容器组件配合使用,且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。例如,ListItem组件要求ForEach的父容器组件必须为。说明从API version 9开始,该接口支持在ArkTS卡片中使用。
2024-01-23 09:37:45
2553
原创 HarmonyOS-if-else-条件渲染
ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,使用if、else和else if渲染对应状态下的UI内容。说明从API version 9开始,该接口支持在ArkTS卡片中使用。
2024-01-22 09:36:18
1485
原创 HarmonyOS-$$语法:内置组件双向同步
$运算符为系统内置组件提供TS变量的引用,使得TS变量和系统内置组件的内部状态保持同步。内部状态具体指什么取决于组件。例如,组件的refreshing参数。
2024-01-19 09:18:10
909
原创 HarmonyOS-@Watch装饰器:状态变量更改通知
Watch用于监听状态变量的变化,当状态变量变化时,@Watch的回调方法将被调用。@Watch在ArkUI框架内部判断数值有无更新使用的是严格相等(===),遵循严格相等规范。当在严格相等为false的情况下,就会触发@Watch的回调。以下示例展示组件更新和@Watch的处理步骤。count在CountModifier中由@State装饰,在TotalView中由@Prop装饰。@Component// @Watch 回调build() {@Entry@Component。
2024-01-18 09:10:26
1439
原创 HarmonyOS-Environment:设备环境查询
开发者如果需要应用程序运行的设备的环境参数,以此来作出不同的场景判断,比如多语言,暗黑模式等,需要用到Environment设备环境查询。Environment是ArkUI框架在应用程序启动时创建的单例对象。它为AppStorage提供了一系列描述应用程序运行状态的属性。Environment的所有属性都是不可变的(即应用不可写入),所有的属性都是简单类型。
2024-01-17 09:19:03
986
原创 HarmonyOS-PersistentStorage:持久化存储UI状态
PersistentStorage将选定的AppStorage属性保留在设备磁盘上。应用程序通过API,以决定哪些AppStorage属性应借助PersistentStorage持久化。UI和业务逻辑不直接访问PersistentStorage中的属性,所有属性访问都是对AppStorage的访问,AppStorage中的更改会自动同步到PersistentStorage。PersistentStorage和AppStorage中的属性建立双向同步。
2024-01-16 09:55:41
955
原创 HarmonyOS-AppStorage:应用全局的UI状态存储
AppStorage是在应用启动的时候会被创建的单例。它的目的是为了提供应用状态数据的中心存储,这些状态数据在应用级别都是可访问的。AppStorage将在应用运行过程保留其属性。属性通过唯一的键字符串值访问。AppStorage可以和UI组件同步,且可以在应用业务逻辑中被访问。AppStorage中的属性可以被双向同步,数据可以是存在于本地或远程设备上,并具有不同的功能,比如数据持久化(详见这些数据是通过业务逻辑中实现,与UI解耦,如果希望这些数据在UI中使用,需要用到和。
2024-01-15 09:43:09
1995
原创 HarmonyOS-LocalStorage:页面级UI状态存储
LocalStorage是ArkTS为构建页面级别状态变量提供存储的内存内“数据库”。应用程序可以创建多个LocalStorage实例,LocalStorage实例可以在页面内共享,也可以通过GetShared接口,获取在UIAbility里创建的GetShared,实现跨页面、UIAbility内共享。组件树的根节点,即被@Entry装饰的@Component,可以被分配一个LocalStorage实例,此组件的所有子组件实例将自动获得对该LocalStorage实例的访问权限;
2024-01-14 17:29:05
1330
原创 HarmonyOS@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化
被@Observed装饰的类,可以被观察到属性的变化;子组件中@ObjectLink装饰器装饰的状态变量用于接收@Observed装饰的类的实例,和父组件中对应的状态变量建立双向数据绑定。这个实例可以是数组中的被@Observed装饰的项,或者是class object中的属性,这个属性同样也需要被@Observed装饰。单独使用@Observed是没有任何作用的,需要搭配@ObjectLink或者@Prop使用。
2024-01-12 09:03:17
1739
原创 HarmonyOS@Prop装饰器:父子单向同步
Prop变量允许在本地修改,但修改后的变化不会同步回父组件。当父组件中的数据源更改时,与之相关的@Prop装饰的变量都会自动更新。如果子组件已经在本地修改了@Prop装饰的相关变量值,而在父组件中对应的@State装饰的变量被修改后,子组件本地修改的@Prop装饰的相关变量值将被覆盖。
2024-01-10 09:03:03
1389
原创 HarmonyOS@State装饰器:组件内状态
State装饰的变量,与声明式范式中的其他被装饰变量一样,是私有的,只能从组件内部访问,在声明时必须指定其类型和本地初始化。初始化也可选择使用命名参数机制从父组件完成初始化。@State装饰的变量与子组件中的@Prop、@Link或@ObjectLink装饰变量之间建立单向或双向数据同步。@State装饰的变量生命周期与其所属自定义组件的生命周期相同。
2024-01-09 09:03:14
1163
原创 HarmonyOS状态管理概述
在前文的描述中,我们构建的页面多为静态界面。如果希望构建一个动态的、有交互的界面,就需要引入“状态”的概念。效果图上面的示例中,用户与应用程序的交互触发了文本状态变更,状态变更引起了UI渲染,UI从“Hello World”变更为“Hello ArkUI”。在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回结果,也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染,在ArkUI中统称为状态管理机制。
2024-01-08 09:29:39
1518
原创 HarmonyOS-stateStyles:多态样式
stateStyles是属性方法,可以根据UI内部状态来设置样式,类似于css伪类,但语法不同。focused:获焦态。normal:正常态。pressed:按压态。disabled:不可用态。
2024-01-07 09:09:40
913
原创 HarmonyOS@Extend装饰器:定义扩展组件样式
在前文的示例中,可以使用@Styles用于样式的扩展,在@Styles的基础上,我们提供了@Extend,用于扩展原生组件样式。说明从API version 9开始,该装饰器支持在ArkTS卡片中使用。
2024-01-05 14:31:38
1168
原创 HarmonyOS@Styles装饰器:定义组件重用样式
的样式都需要单独设置,在开发过程中会出现大量代码在进行重复样式设置,虽然可以复制粘贴,但为了代码简洁性和后续方便维护,我们推出了可以提炼公共样式进行复用的装饰器@Styles。@Styles装饰器可以将多条样式设置提炼成一个方法,直接在组件声明的位置调用。通过@Styles装饰器可以快速定义并复用自定义样式。用于快速定义并复用自定义样式。说明从API version 9开始,该装饰器支持在ArkTS卡片中使用。
2024-01-05 14:00:36
822
原创 HarmonyOS@Builder装饰器
允许在自定义组件内定义一个或多个自定义构建函数,该函数被认为是该组件的私有、特殊类型的成员函数。自定义构建函数可以在所属组件的build方法和其他自定义构建函数中调用,但不允许在组件外调用。在自定义函数体中,this指代当前所属组件,组件的状态变量可以在自定义构建函数内访问。建议通过this访问自定义组件的状态变量而不是参数传递。全局的自定义构建函数可以被整个应用获取,不允许使用this和bind方法。如果不涉及组件状态变化,建议使用全局的自定义构建方法。
2024-01-04 16:33:20
1075
原创 HarmonyOS页面和自定义组件生命周期
自定义组件的创建:自定义组件的实例由ArkUI框架创建。初始化自定义组件的成员变量:通过本地默认值或者构造方法传递参数来初始化自定义组件的成员变量,初始化顺序为成员变量的定义顺序。如果开发者定义了aboutToAppear,则执行aboutToAppear方法。在首次渲染的时候,执行build方法渲染系统组件,如果子组件为自定义组件,则创建自定义组件的实例。状态变量 -> UI组件(包括ForEach和if)。
2024-01-03 10:26:21
1600
原创 HarmonyOS创建自定义组件
struct:自定义组件基于struct实现,struct + 自定义组件名 + {…}的组合构成自定义组件,不能有继承关系。对于struct的实例化,可以省略new。说明自定义组件名、类名、函数名不能和系统组件名相同。@Component:@Component装饰器仅能装饰struct关键字声明的数据结构。struct被@Component装饰后具备组件化的能力,需要实现build方法描述UI,一个struct只能被一个@Component装饰。说明。
2024-01-03 10:20:37
1354
原创 HarmonyOS-ArkTS基本语法及声明式UI描述
在初步了解了ArkTS语言之后,我们以一个具体的示例来说明ArkTS的基本组成。如下图所示,当开发者点击按钮时,文本内容从“Hello World”变为“Hello ArkUI”。图1示例效果图本示例中,ArkTS的基本组成如下所示。图2ArkTS的基本组成装饰器: 用于装饰类、结构、方法以及变量,并赋予其特殊的含义。
2024-01-02 16:13:39
2168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人