11 2024 档案
摘要:概述: 应用在申请权限时,需要在项目的配置文件中,逐个声明需要的权限,否则应用将无法获取授权。 在 src/main/module.json5 文件中进行权限声明配置 使用示例: { "module": { "name": "entry", "type": "entry", "description
阅读全文
摘要:概述: 窗口提供管理窗口的一些基础能力,包括对当前窗口的创建、销毁、各属性设置,以及对各窗口间的管理调度。 该模块提供以下窗口相关的常用功能: Window:当前窗口实例,窗口管理器管理的基本单元。 WindowStage:窗口管理器。管理各个基本窗口单元。 一、导入模块 import window
阅读全文
摘要:概述: $$运算符为系统内置组件提供TS变量的引用,使得TS变量和系统内置组件的内部状态保持同步 使用规则: 1、当前$$支持基础类型变量,以及@State、@Link和@Prop装饰的变量 2、$$绑定的变量变化时,会触发UI的同步刷新 3、支持的组件 使用示例: @Entity @Compone
阅读全文
摘要:概述 @Watch应用于对状态变量的监听。如果开发者需要关注某个状态变量的值是否改变,可以使用@Watch为状态变量设置回调函数。 观察变化和行为表现 当观察到状态变量的变化(包括双向绑定的AppStorage和LocalStorage中对应的key发生的变化)的时候,对应的@Watch的回调方法将
阅读全文
摘要:概述: 当开发者使用@Builder做引用数据传递时,会考虑组件的父子关系,使用了bind(this)之后,组件的父子关系和状态管理的父子关系并不一致。 为了解决组件的父子关系和状态管理的父子关系保持一致的问题,引入@LocalBuilder装饰器。 @LocalBuilder拥有和局部@Build
阅读全文
摘要:一、参数初始化组件 @BuilderParam装饰的方法可以是有参数和无参数的两种形式,需与指向的@Builder方法类型匹配 1、定义一个类作为参数 // 定义一个对象,ui需要的数据 export class ViewEntity{ content:string = "sssss"; } 2、定
阅读全文
摘要:概述: 该装饰器用于声明任意UI描述的一个元素,类似slot占位符。 使用示例: 1、初始化@BuilderParam装饰的方法 // 自定义组件 @Component export struct CommonView{ @Builder customBuilder() {}; // 当前组件 @B
阅读全文
摘要:一、合理控制元素显示与隐藏 在控制组件显示与隐藏时,建议遵循以下原则来选择使用控制方式: 在对性能要求较高,并且会频繁切换元素的显示与隐藏的情况下,应该避免使用if条件判断,而改为通过visibility的属性控制,这样在切换Visibility.None和Visibility.Visible时,可
阅读全文
摘要:1、定义一个生命周期类ExitAppLifecycle实现IHMLifecycle接口 import { HMLifecycle, HMLifecycleContext, IHMLifecycle } from '@hadss/hmrouter'; @HMLifecycle({lifecycleNa
阅读全文
摘要:一、初始化路由框架 在UIAbility(src/main/ets/entryability/EntryAbility.ets)中初始化路由框架 export default class EntryAbility extends UIAbility { onCreate(want: Want, la
阅读全文
摘要:概述: HMRouter作为HarmonyOS的页面跳转场景解决方案,聚焦解决应用内原生页面的跳转逻辑。 HMRouter底层对系统Navigation进行封装,集成了Navigation、NavDestination、NavPathStack的系统能力, 提供了可复用的路由拦截、页面生命周期、自定
阅读全文
摘要:基本概念 默认界面扫码能力提供系统级体验一致的扫码界面,Scan Kit对系统相机权限进行了预授权,调用接口时,无需开发者再次申请相机权限。 适用于不同扫码场景的应用开发 场景介绍 默认界面扫码能力提供了系统级体验一致的扫码界面以及相册扫码入口,支持单码和多码识别,支持多种识码类型,请参见ScanT
阅读全文
摘要:基本概念 图片识码能力支持对图库中的码图进行扫描识别,并获取信息 场景介绍 图片识码能力支持对图库中的条形码、二维码、MULTIFUNCTIONAL CODE进行识别,并获得码类型、码值、码位置信息 该能力可用于一图单码和一图多码的识别,比如条形码、付款码等 使用示例 1、导入图片识码接口和相关接口
阅读全文
摘要:概述: Navigation路由相关的操作都是基于页面栈NavPathStack提供的方法进行,每个Navigation都需要创建并传入一个NavPathStack对象,用于管理页面。 主要涉及页面跳转、页面返回、页面替换、页面删除、参数获取、路由拦截等功能 1、页面跳转 this.pageStac
阅读全文
摘要:目录: entry -> src -> main -> ets -> entryability -> EntryAbilityts文件 修改 windowStage.loadContent 设置路径 : windowStage.loadContent('pages/navigations/MainP
阅读全文
摘要:一、设置每次运行直接覆盖安装,非卸载重装 Run->Edit Configurations-> 勾选 Keep Application Data
阅读全文
摘要:概述: HashMap底层使用数组+链表+红黑树的方式实现,查询、插入和删除的效率都很高。 HashMap存储内容基于key-value的键值对映射,不能有重复的key,且一个key只能对应一个value 一、导入 import {HashMap} from '@kit.ArkTS' 二、定义 le
阅读全文
摘要:概述: 一种线性数据结构,底层基于数组实现 一、导入 import { ArrayList } from '@kit.ArkTS'; 二、定义 let arrayList: ArrayList<string | number> = new ArrayList(); 三、常用函数 1、 add,在Ar
阅读全文
摘要:概述: 提供分隔器组件,分隔不同内容块/内容元素。 一、定义 Divider() 二、属性 1、vertical,设置分割线的方向 vertical(value: boolean) 使用水平分割线还是垂直分割线。 false:水平分割线;true:垂直分割线。 默认值:false 2、color,设
阅读全文
摘要:概述: 空白填充组件,在容器主轴方向上,空白填充组件具有自动填充容器空余部分的能力。 仅当父组件为Row/Column/Flex时生效。 一、定义: Blank(min?: number | string) min: 非必填,空白填充组件在容器主轴上的最小大小,默认值:0 二、属性: color,设
阅读全文
摘要:概述: 提供注册组件布局和绘制完成回调通知的能力。 一、导入模块 import {inspector} from '@kit.ArkUI' 二、绑定指定组件,返回对应的监听句柄 inspector.createComponentObserver createComponentObserver(id:
阅读全文
摘要:概述: 提供获取组件绘制区域坐标和大小的能力。 一、导入模块 import { componentUtils } from '@kit.ArkUI'; 二、根据组件id获取组件信息 componentUtils.getRectangleById getRectangleById(id: string
阅读全文
摘要:自定义弹窗选型 合理选择不同的系统能力实现弹窗,有利于提升应用开发效率,实现更好的功能需求,因此了解自定义弹窗的选型和差异非常重要。在应用开发中,为了选择出合适的弹窗选型,从使用场景上,需要重点关注以下两点: 弹窗与界面代码解耦 在开发业务逻辑时,例如遇到一些网络请求失败的场景,需要触发相应的弹窗提
阅读全文
摘要:概述: 基于promptAction弹窗演进而来,支持全局自定义弹窗,不依赖UI组件,依赖UIContext, 支持在非页面文件中使用,弹窗内容支持动态修改,支持自定义弹窗圆角半径、大小和位置, 适合在与页面解耦的全局弹窗、自定义弹窗显示和退出动画等场景下使用。 注意: 需先使用UIContext中
阅读全文
摘要:概述: 创建并显示文本提示框、对话框和操作菜单。 注意: 1、本模块功能依赖UI的执行上下文,不可在UI上下文不明确的地方使用 2、该模块不支持在UIAbility的文件声明处使用,即不能在UIAbility的生命周期中调用,需要在创建组件实例后使用。 一、导入模块 import { promptA
阅读全文
摘要:概述: CustomDialog是自定义弹窗,可用于广告、中奖、警告、软件更新等与用户交互响应操作。开发者可以通过CustomDialogController类显示自定义弹窗 一、创建自定义弹框 1、使用@CustomDialog装饰器装饰自定义弹窗,可在此装饰器内自定义弹窗内容 // 自定义弹框内
阅读全文
摘要:概述: 警告弹窗,需要向用户提问或得到用户的许可。 警告弹窗用来提示重要信息,但会中断当前任务,尽量提供必要的信息和有用的操作。 避免仅使用警告弹窗提供信息,用户不喜欢被信息丰富但不可操作的警告打断。 必选内容包含:标题、可选信息文本、最多3个按钮。 可选内容包含:输入框、icon、checkBox
阅读全文
摘要:概述: 应用开发中使用的各类资源文件,需要放入特定子目录中存储管理。 资源目录的示例如下所示, base目录、限定词目录、rawfile目录、resfile目录称为资源目录;element、media、profile称为资源组目录。 resources | base | | element | |
阅读全文
摘要:需求: 动态设置栅格布局子元素 实现如下: 一、定义一个类,定义所有的子元素数据 // 首页业务按钮可选项集合 export class HomeBussinessConfig{ title:string = "" icon:Resource = $r('app.media.app_icon') c
阅读全文
摘要:需求:存在n个tab页,支持动态设置显示指定某几个tab 实现如下: 一、定义一个类,定义所有的tab页数据 知识点: 1、类使用export修饰,可以让其他模块引入 2、类内字段 设置 static readonly ,只读静态字段 3、图标文件存于src->main->resources->ba
阅读全文
摘要:概述: 栅格布局是一种通用的辅助定位工具,对移动设备的界面设计有较好的借鉴作用。主要优势包括: 提供可循的规律:栅格布局可以为布局提供规律性的结构,解决多尺寸多设备的动态布局问题。通过将页面划分为等宽的列数和行数,可以方便地对页面元素进行定位和排版。 统一的定位标注:栅格布局可以为系统提供一种统一的
阅读全文
摘要:概述: 网格布局是由“行”和“列”分割的单元格所组成,通过指定“项目”所在的单元格做出各种各样的布局。 网格布局具有较强的页面均分能力,子组件占比控制能力,是一种重要自适应布局,其使用场景有九宫格图片展示、日历、计算器等。 ArkUI提供了Grid容器组件和子组件GridItem,用于构建网格布局。
阅读全文
摘要:概述: 程序可划分为多组编译单元或模块。 每个模块都有其自己的作用域,即,在模块中创建的任何声明(变量、函数、类等)在该模块之外都不可见,除非它们被显式导出。 与此相对,从另一个模块导出的变量、函数、类、接口等必须首先导入到模块中。 一、导出 可以使用关键字export导出顶层的声明。 未导出的声明
阅读全文
摘要:概述:默认情况下,ArkTS中的所有类型都是不可为空的,因此类型的值不能为空。 这类似于TypeScript的严格空值检查模式(strictNullChecks),但规则更严格 let x: number = null; // 编译时错误 let y: string = null; // 编译时错误
阅读全文
摘要:一、定义一个类 // 定义一个货品类 class Product{ name:string = ""; // 货品名称 price?:number ; // 货品价格 // 构造方法,参数为货品名称 constructor(name:string) { this.name = name } getN
阅读全文
摘要:一、函数声明 包含其名称、参数列表、返回类型和函数体 function getName(defaultName:string):string{ return defaultName 'Alice'?defaultName:"Tom" } 二、可选参数 格式可为name?: Type function
阅读全文
摘要:一、声明变量 let name:string = ""; name = "Alice" 如果一个变量或常量的声明包含了初始值,那么开发者就不需要显式指定其类型。ArkTS规范中列举了所有允许自动推断类型的场景。 let name = "Alice"; 二、声明常量 const name:string
阅读全文
摘要:概述: TextInput、TextArea是输入框组件,通常用于响应用户的输入操作。 1、TextInput为单行输入框 TextInput({placeholder:'请输入内容',text:'默认值'}) 2、TextArea为多行输入框 TextArea({placeholder:'请输入内
阅读全文
摘要:问题如图: 开发过程中,莫名出现与自己创建的.ets文件同名称的.js 和 .map文件 问题原因: 编译/预览过程产生的缓存文件 解决办法: 1、下载插件 https://plugins.jetbrains.com/plugin/23192-arkcompilersupport/versions
阅读全文