当前位置: 首页 > news >正文

【每日学点鸿蒙知识】Web高度适配、变量声明规范、动画取消、签名文件、包体积优化相关

1、HarmonyOS Web页面高度适配?

在Web页面设置高度100%时,发现和Web控件的高度不一致,这个需要设置什么可以达到页面高度和Web容器高度一致

目前只支持两种web布局模式,分别为Web布局跟随系统WebLayoutMode.NONE和Web基于页面大小的自适应网页布局WebLayoutMode.FIT_CONTENT。默认为WebLayoutMode.NONE模式。参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-tabcontent-V5#layoutmode10%E6%9E%9A%E4%B8%BE%E8%AF%B4%E6%98%8E

Web({ src: $rawfile('index.html'), controller: this.controller }).width(CommonConstants.WIDTH_OR_HEIGHT).layoutMode(WebLayoutMode.FIT_CONTENT)
2、HarmonyOS ArkTS对于变量类型的声明有相关规范吗?

是否需要在变量声明时候加上变量类型,不同类型要求一致吗,比如:
let result = ''这里是否要求写成let result: string = ‘’
const TEST_RESULT = 'ok’是否要求写成const TEST_RESULT: string = ‘ok’
成员变量和临时变量有差异吗?

使用 let result = ‘’; 就可以,引擎会根据值来推导类型。let 和 const 是一样的,不论是什么类型的变量,都是可以自动推导的。

3、HarmonyOS animateTo或animation动画如何取消?

看了看文档好像没看到有相关的取消方法

如果你需要打断动画可以参考下这个demo,设置一个为0的动画去打断之前的动画。
参考demo:

@Component
@Entry
struct Index {@State clickNumber: number = 0;@State myScale: number = 1.0;uiContext: UIContext | undefined = undefined;imageIndex: number = 0aboutToAppear() {this.uiContext = this.getUIContext?.();}build() {Stack({ alignContent: Alignment.TopEnd }) {//木鱼图片Image($r('app.media.startIcon')).zIndex(2).width(200).height(200).margin({ top: 300, right: 130 }).scale({ x: this.myScale, y: this.myScale })// .clickEffect({level:ClickEffectLevel.LIGHT,scale:0.5}).onClick(() => {if (!this.uiContext) {return;}//设置一个显示动画为0的动画,去打断之前的动画animateTo({ duration: 0, iterations: 1}, () => {console.info('this.dur0xxx---', this.myScale)this.myScale = 1;})animateTo({ duration: 1500, iterations: 1 ,onFinish: () => {animateTo({ duration: 1500, iterations: 1}, () =>{console.info('this.dur2---', this.myScale)this.myScale = 1;})}}, () => {console.info('this.dur1---', this.myScale)this.myScale = 0.8;})})}.backgroundColor(Color.Black).width('100%').height('100%')}
}
4、如何在build-profile中配置debug模式使用一份签名文件,release模式使用另一份签名文件

工程级build-profile.json5文件中新增定制product,分别使用不同的签名证书,
1、配置签名文件

"signingConfigs": [ { "name": "default", "type": "HarmonyOS", "material": { "certpath": "", "storePassword": "", "keyAlias": "", "keyPassword": "", "profile": "b", "signAlg": "", "storeFile": "" } }, { "name": "useForRelease", "type": "HarmonyOS", "material": { "certpath": "", "storePassword": "", "keyAlias": "", "keyPassword": "", "profile": "b", "signAlg": "", "storeFile": "" } }, { "name": "useForDebug", "type": "HarmonyOS", "material": { "certpath": "", "storePassword": "", "keyAlias": "", "keyPassword": "", "profile": "b", "signAlg": "", "storeFile": "" } ] 

2、配置

"products": [ { "name": "default", "signingConfig": "default", "compatibleSdkVersion": "5.0.0(12)", "runtimeOS": "HarmonyOS", }, { "name": "useForDebug", "signingConfig": "useForDebug", "compatibleSdkVersion": "5.0.0(12)", "runtimeOS": "HarmonyOS", }, { "name": "useForRelease", "signingConfig": "useForRelease", "compatibleSdkVersion": "5.0.0(12)", "runtimeOS": "HarmonyOS", } ],

右上角product按钮Product 选择useForDebug 来选择使用调试证书的hap ,选择useForRelease->apply 构建出来的APP 则使用发布证书。default 配置项勿删。

3、module中 ,applytoProducts 属性中增加useForDebug,useForRelease 两个参数 “modules”:

 [ { "name": "entry", "srcPath": "./entry", "targets": [ { "name": "default", "applyToProducts": [ "default", "default_debug", "default_realse" ] } ] } ] 
5、在全局配置oh-package中配置依赖的第三方应用与在模块中配置oh-package中配置的第三方应用有什么区别,对包体积会有影响吗?

第三方库依赖配置在全局中和配置在模块中是否对包体大小有影响?

全局配置oh-package中配置依赖的第三方应用是在整个项目中都可以使用的,而在模块中配置oh-package中配置的第三方应用是只在该模块中可以使用的。因此,全局配置会影响整个项目的包体积,而模块中配置只会影响该模块的包体积。

http://www.lryc.cn/news/513794.html

相关文章:

  • uniapp使用ucharts组件
  • LabVIEW工程师的未来发展
  • java的bio、nio、aio 以及操作系统的select、poll、epoll
  • 2024 年发布的 Android AI 手机都有什么功能?
  • RLHF,LM模型
  • 【机器学习】工业 4.0 下机器学习如何驱动智能制造升级
  • REST与RPC的对比:从性能到扩展性的全面分析
  • MATLAB中将MAT文件转换为Excel文件
  • leetcode hot 100 跳跃游戏2
  • 【Cesium】八、Cesium 默认地图不显示,不加载默认Bing地图
  • 【新方法】通过清华镜像源加速 PyTorch GPU 2.5安装及 CUDA 版本选择指南
  • MySQL的sql操作有哪些
  • ArcGIS计算矢量要素集中每一个面的遥感影像平均值、最大值等统计指标
  • EasyExcel(环境搭建以及常用写入操作)
  • 探索Milvus数据库:新手入门指南(tencent云)
  • MySQL:一文弄懂时区time_zone
  • 基于python的天气可视化系统
  • STM32 高级 WIFi案例1:测试AT指令
  • SpringCloud微服务架构
  • WebSocket封装
  • 基于Flask后端框架的均值填充
  • SQL-Server链接服务器访问Oracle数据
  • Python中continue语句的使用
  • JavaScript的diff库详解(示例:vue项目实现两段字符串比对标黄功能)
  • 自动驾驶3D目标检测综述(六)
  • the request was rejected because no multipart boundary was found
  • HarmonyOS-面试整理
  • [C#] 「Unity」「游戏开发」如何在Canvas下的Button控件下实例化Image元素
  • Nginx1.20.2-Linux-安装
  • Elasticsearch名词解释