【每日学点鸿蒙知识】Web Header更新、状态变量嵌套问题、自定义弹窗、stack圆角、Flex换行问题

ops/2025/3/5 6:26:56/

【每日学点鸿蒙知识】Web Header更新、状态变量嵌套问题、自定义弹窗、stack圆角、Flex换行问题

1、HarmonyOS 有关webview Header无法更新的问题?

业务A页面 打开 webivew B页面,第一次打开带了header请求,然后退出webview B页面,然后动态更新了header参数 但是抓包发现。第二次webview的请求是没有header的 其他: headers 里的参数一直有在动态更新,debug发现每次触发 prefetchPage 或 loadUrl 都是更新了header,但是实际请求没有更新,而且header为空了。

prefetchPage会对同一url进行缓存,缓存时间为5min,且无法判断当前url是否缓存,使用prefetchPage对已缓存的url再次请求时不会触发真正的请求,也不会带上header。

使用loadUrl,需要注意的是,在同时使用onControllerAttached时,为了防止Web组件时序问题,在web src处需要写入空字符串。参考API文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5#ZH-CN_TOPIC_0000001847210168__setcustomuseragent10

示例代码:

Web({ src: "", controller: this.webViewController }).onLoadIntercept(event => {if (event && event.data && event.data.getRequestUrl()) {let url = event.data.getRequestUrl()}return false}).onControllerAttached(() => {console.info("yyyyy onControllerAttached")let headers = new Array<webview.WebHeader>()headers.push({ headerKey: 'AUTHORIZATION', headerValue: 'test value' })// this.webViewController.prefetchPage(this.loadUrl, headers)this.webViewController.loadUrl(this.loadUrl, headers)})
2、HarmonyOS 嵌套一层的数组无法监听相同数据增加,但是无嵌套的数组可以监听相同数据增加?

嵌套一层的数组无法监听相同数据增加,但是无嵌套的数组可以监听相同数据增加

ArkUI的变化是与@State的变量有关系的,嵌套数组里数据是已经发生变化了,但是UI监听不到深层的,这边建议修改对应代码如:

@State data5:Array<RequestData4> =  []
Text("原生数据:\n" + JSON.stringify(this.data5) ?? "2333").padding(10).fontColor(Color.Black)
this.data5 = JSON.parse(JSON.stringify( this.data.data5))
3、HarmonyOS 自定义弹窗如何在工具类中使用?

在class中定义了CustomDialogController 在组件中调用的时候 没有反应不会弹出弹窗来 ,想问一下CustomDialog如何写在工具类中,让组件调用并且可以传入内容

自定义弹窗的CustomDialogController只能在@component中使用,外部返回时会失效。 弹框场景更推荐使用promptAction.openCustomDialog,后续弹框也主要是基于promptAction做演进。开发者主要需要自定义弹框内容的buillder,使用参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-promptaction-V5

4、HarmonyOS stack设置圆角不生效?

参考代码:

@Entry
@Component
struct StackExample {build() {Stack({ alignContent: Alignment.Center }) {Text('First child, show in bottom').width('90%').height('80%').backgroundColor(0xd2cab3).align(Alignment.Top)Text('Second child, show in top').width('70%').height('60%').backgroundColor(0xc1cbac).align(Alignment.Top)}.width('100%').height(150).margin({ top: 300 }).borderRadius(33).backgroundColor(Color.Red)}
}
5、HarmonyOS Flex组件设置不换行怎么能避免被截断?

UI中通过Flex展示小标签,产品要求只在一行展示,展示不下就不展示了。目前通过Flex组件实现标签列表的展示,设置成NoWrap属性后,标签会一直平铺下去,且最后展示的标签还会被截断。如果不想被截断设置成Wrap属性后,又无法限制单行显示。请问如何操作?

给父组件设置高度,加上clip裁剪属性,文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-sharp-clipping-V5

参考以下demo:

@Entry
@Component
struct Test66 {@State arr: string[] = ['西安市', '成都市22','成都市33','成都市44','成都市55','成都市66', '重庆市', '乌鲁木齐市', '北京市', '呼伦贝尔市', '北京市333'];build() {Column() {Flex({  wrap: FlexWrap.Wrap }) {ForEach(this.arr, (item: string) => {Text(item).fontSize('16vp').borderWidth('1vp').borderColor('#666666').borderRadius('10vp').padding('3vp').height(100)})}}.width('100%').height(100).backgroundColor(0xDCDCDC).clip(true)}
}

http://www.ppmy.cn/ops/163235.html

相关文章

【C++设计模式】第三篇:抽象工厂模式(Abstract Factory)

注意&#xff1a;复现代码时&#xff0c;确保 VS2022 使用 C17/20 标准以支持现代特性。 构建相关对象族的统一接口&#xff0c;保障产品兼容性 1. 模式定义与用途 核心目标&#xff1a;提供一个接口&#xff0c;用于创建一系列相关或依赖对象&#xff0c;而无需指定它们的具…

快速高效使用——阿里通义万相2.1的文生图、文生视频功能

前言&#xff1a;你仅需提供简单的几个提示词&#xff0c;即可快速高效帮你生成更为丰富的提示词并生成满意的图片或者视频。无论是为了创作艺术作品、设计商业宣传素材&#xff0c;还是满足个人兴趣爱好等&#xff0c;都能快速将脑海中的想法转化为逼真的图片或生动的视频。 目…

【Linux操作系统】VM17虚拟机安装Ubuntu22.04,图文详细记录

1.双击桌面的 VMware Workstation17 Player&#xff0c;点击“创建新虚拟机”&#xff0c;如下图所示。 2.选择“稍后安装操作系统”&#xff0c;点击“下一步”。如下图所示。 3.客户机操作系统选择“Linux”&#xff0c;版本选择“ Ubuntu 64位”&#xff0c;然后点击“下一…

104.二叉树的最大深度

题目描述 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3 示例 2&#xff1a; 输入&#xff1a;ro…

数据高质量与合规,守护AI模型的真实未来

在人工智能&#xff08;AI&#xff09;技术迅猛发展的今天&#xff0c;高质量的数据已成为推动AI模型进步的核心要素。然而&#xff0c;随着合成数据&#xff08;Synthetic Data&#xff09;的广泛应用&#xff0c;数据质量和伦理问题日益凸显。欧盟《人工智能法案》&#xff0…

虚拟机ip配置

VMware 虚拟机中 Linux 系统 IP 配置 1. 确认网络连接模式 VMware 提供了三种常用的网络连接模式&#xff1a;桥接模式、NAT 模式和仅主机模式。不同模式下 IP 配置方法有所差异。 桥接模式&#xff1a;虚拟机直接连接到物理网络&#xff0c;相当于网络中的一台独立设备&#…

【计算机视觉】手势识别

手势识别是计算机视觉领域中的重要方向&#xff0c;通过对摄像机采集的手部相关的图像序列进行分析处理&#xff0c;进而识别其中的手势&#xff0c;手势被识别后用户就可以通过手势来控制设备或者与设备交互。完整的手势识别一般有手的检测和姿态估计、手部跟踪和手势识别等。…

e2studio开发RA4M2(15)----配置RTC时钟及显示时间

e2studio开发RA4M2.15--配置RTC时钟及显示时间 概述视频教学样品申请硬件准备参考程序源码下载新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置SWD调试口设置UART配置UART属性配置设置e2studio堆栈e2studio的重定向printf设置R_SCI_UART_Open()函数原型回调函数user…