HarmonyOS 项目中大量图片资源存放位置最佳实践
base目录base目录是默认存在的目录,二级子目录element用于存放字符串、颜色、布尔值等基础元素,media、profile存放媒体、动画、布局等资源文件。目录中的资源文件会被编译成二进制文件,并赋予资源文件ID。通过指定资源类型(type)和资源名称(name)引用。rawfile目录支持创建多层子目录,子目录名称可以自定义,文件夹内可以自由放置各类资源文件。目录中的资源文件会被直接打包进应用,不经过编译,也不会被赋予资源文件I...
如何获取获取OAID信息
import{identifier}from'kit.AdsKit';使用Promise方式privategetOaidByPromise(){try{获取OAID信息identifier.getOAID().then((data:string)>{this.oaiddata;hilog.info(0x0000,'testTag','%{public}s','getAdsIdentifierInfobypromisesuccess');}).catch((err:BusinessError)>{hilog.error(0x0000,'testTag','%{public}s',getAdsIdentifierInfofailed,message:${(errasBusinessError).message});})}catch(err){hilog.error(0x0...
如何获取应用上下文Context?
在UIAbility中import{UIAbility,AbilityConstant,Want}from'kit.AbilityKit';exportdefaultclassEntryAbilityextendsUIAbility{onCreate(want:Want,launchParam:AbilityConstant.LaunchParam):void{letuiAbilityContextthis.context;...}}在组件中00001.import{common}from'kit.AbilityKit';00002.privatecontextgetContext(this)ascommon.UIAbilityContext;
如何过滤textinput组件内容
TextInput组件的inputFilter属性允许用户通过设定正则表达式参数,实现对输入字符的严谨校验机制。在此机制下,任何不符合正则表达式定义的字符输入将被视为无效,从而确保输入内容的准确性和合规性。参考代码如下:EntryComponentstructIndex{controller:TextInputControllernewTextInputController();build(){Column(){请输入密码',text:'123456',controller:this.controller}).type(InputType.Password).placeholderColor(Color.Gray)只允许输入09这10个字符,其他字符输入无效:'+val);return0;})}}}
HarmonyOS 使用Preferences时报错崩溃 Error code 15500000
看报错,应该是this.context的问题,写了一个PreferenceUtil,可以参考一下importpreferencesfrom'ohos.data.preferences';classPreferenceUtil{pref:preferences.Preferencesnullnull;asyncloadPreference(context:Context){try{加载preferencesthis.prefawaitpreferences.getPreferences(context,'myApppreferencesStor');}catch(e){}}asyncputPreferenceValue(key:string,value:preferences.ValueType){if(!this.pref){conso...
如何判断文本组件text是否超出maxLines设置的高度
import{MeasureText}from'kit.ArkUI'EntryComponentstructTextInputExample{Statetext:string'';StatetruncatedHint:string"文本未截断";controller:TextInputControllernewTextInputController();build(){Column(){TextInput({text:this.text,placeholder:'inputyourword...',controller:this.controller}).placeholderColor(Color.Grey).placeholderFont({size:14,weight:400}).caretColor(Color.Blue).width(400).height(40)...
实现接口的匿名实现传参
示例代码定义一个接口interfaceCalculator{calculate:(x:number,y:number)>number;}使用匿名实现方式传参functionoperate(a:Calculator,x:number,y:number){constresulta.calculate(x,y);console.log(Result:${result});}传入匿名实现的对象operate({calculate:(a:number,b:number)>a+b},5,3);
如何才能获取应用的版本号,版本名等信息?
通过bundleManager.getBundleInfoForSelf查询bundleInfobundleInfo中包含App版本号、版本名信息。import{bundleManager}from'kit.AbilityKit';申请获取bundleInfo和applicationInfoletbundleFlagsbundleManager.BundleFlag.GETBUNDLEINFOWITHAPPLICATION;try{bundleManager.getBundleInfoForSelf(bundleFlags,(err,data)>{获取应用自身的bundleNameconstbundleNamedata.name;获取应用的版本号(versionCode)constversionCodeda...
两个LazyForeach的List如何组合在一起,并且支持懒加载
1.整个外层布局是一个Scroll,内存布局有两个List,上面是ListA,下面的是ListB,分别采取LazyForEach的方式加载数据。2.ListA设置一个BuilderParam参数,用于设置List上方的搜索及功能选项。第一个ListItem放父组件传递过来的UI插槽,后面是Lazy加载的ListItem。3.给ListA和ListB绑定nestedScroll属性。示例代码:EntryComponentstructCombination{Builderheader(){...}builder(){Column(){Scroll(){Column(){ListA()ListB()}}...
提供页面维度和组件维度可以设置防截屏和录屏API或属性?
在模块级别module.json5添加权限ohos.permission.PRIVACYWINDOW(module>requestPermissions)示例代码:windowUtils.etsimportwindowfrom'ohos.window';importcommonfrom'ohos.app.ability.common';exportclasswindowUtils{staticsetWindowPrivacyModeInPage(context:common.UIAbilityContext,isFlag:boolean){window.getLastWindow(context).then((lastWindow)>{lastWindow.setWindowPrivacyMode(isFlag);})}}index.ets文件im...
能否应用内展示应用市场详情页并下载
应用市场提供应用分发的能力,对于应用内引导下载,可以提供多种下载方式,其中静默安装、半屏详情页迷你详情页等方式不跳出应用。单框架下引导下载的能力还在构建中,按照当前规划24年可以提供。示例代码当前可以通过拉起应用市场,并跳转到某个指定应用的详情页面,来实现此功能importWantfrom'ohos.app.ability.Want';importcommonfrom'ohos.app.ability.common';EntryComponentstructIndex{StateappId:string'C114258627941...
获取运行时编译构建参数
使用的核心API参考文档:获取自定义编译构建参数核心代码解释:配置buildprofilejson5如下:{"apiType":"stageMode","buildOption":{"arkOptions":{"apPath":".modules.ap"用于按配置文件优化(PGO)的配置文件,这是一种用于提高应用运行时性能的编译器优化技术."buildProfileFields":{"buildOptionDataString":'模块在构建过程中的相关配置{"name":"zw111","age":116}',"buildOptionDataNumber":15818416,"buildOptio...
在HAP编译的过程中,本地依赖tgz
使用的核心APIdependencies以及overrides核心代码解释例如在分别在B模块,A模块,entry模块级中编写:B模块:exportfunctionmuti(a:number,b:number){returnab;}A模块:import{muti}from'libraryBIndex';exportfunctionaddAndMuti(a:number,b:number){letca+bletdmuti(c,b)returnd;}entry中:import{addAndMuti}from'libraryAIndex';EntryComponentstructIndex{Statemessage:string'HelloWorld';build(){Row(){Column(){Button(this.m...
在HAP编译的过程中,自定义Hvigor插件中获取到当前编译的编译模式
使用的核心APIhvigor的getBuildMode核心代码解释例如在entry模块级hvigorfile.ts中设置:import{hvigor,HvigorNode,HvigorPlugin}from'ohoshvigor';import{hapTasks,OhosHapContext,OhosProjectContext,OhosPluginId,Target}from'ohoshvigorohosplugin';exportfunctioncustomPlugin2():HvigorPlugin{return{pluginId:'customPlugin2',context(){return{data:'customPlugin2xxx'};},asyncapply(currentNode:HvigorNode):Promise<v...