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

【每日学点HarmonyOS Next知识】web内存异常问题、Web高度问题、图片按压效果、加载沙盒中html、感知路由返回传参

【每日学点鸿蒙知识】web内存异常问题、Web高度问题、图片按压效果、加载沙盒中html、感知路由返回传参

1、HarmonyOS web内存异常,每次进入新的界面,加载web内存都会增加100M以上,如此反复创建web,容易出现ANR?

就反复加载一个huawei首页即可

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-routing-V5
Web是一个重量级组件所以,占用的内存多了一点,系统内存紧张情况下会进行web缓存资源回收。系统会自动回收内存。

分析AppFreeze(应用无响应) 参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/appfreeze-guidelines-V5

2、HarmonyOS Scroll内嵌Web组件时,如果不指定Web高度,web组件就会非常的高,不使用Scroll时则能正常展示?

关于web的嵌套滚动,参考下以下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-nested-scrolling-V5
Web组件嵌套滚动的典型应用场景为,在一个页面中,有多个独立的区域需要进行滚动,当用户滚动Web区域内容时,可带动其他滚动区域进行滚动,以达到上下滑动页面的用户体验。

内嵌在可滚动容器(Scroll、List…)中的Web组件,接收到滑动手势事件,需要对接ArkUI框架的NestedScrollMode枚举类型,使得Web组件可以嵌套ArkUI可滚动容器,进行嵌套滚动。开发者可以在Web组件创建时,使用nestedScroll属性接口指定默认的嵌套滚动模式,也允许在过程中动态改变嵌套滚动的模式。

nestedScroll入参为一个NestedScrollOptions对象,该对象具有两个属性,分别为scrollForward和scrollBackward,每一个属性都为一个NestedScrollMode枚举类型。

当Web组件被多个可滚动容器组件嵌套时,未被Web组件消费的与父组件方向一致的偏移量、速度值将被传递给距Web组件最近且方向一致的父组件,使得父组件可以继续滚动。一次手势滑动只能沿X轴或Y轴一个方向嵌套滚动,当手势斜向滑动时,滚动方向为偏移量或速度在X轴、Y轴绝对值较大的方向;当偏移量或速度绝对值在X轴、Y轴绝对值相同时,滚动方向为距Web组件最近的可滚动组件的方向。

layoutMode设置Web布局模式,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#layoutmode11
目前只支持两种Web布局模式,分别为Web布局跟随系统(WebLayoutMode.NONE)和Web组件高度基于前端页面高度的自适应网页布局(WebLayoutMode.FIT_CONTENT)。

Web组件高度基于前端页面自适应布局有如下限制:

  • 如果Web组件宽或长度超过7680px,请在Web组件创建的时候指定RenderMode.SYNC_RENDER模式,否则会整个白屏。
  • Web组件创建后不支持动态切换layoutMode模式
  • Web组件宽高规格:指定RenderMode.SYNC_RENDER模式时,分别不超过50万px;指定RenderMode.ASYNC_RENDER模式时,分别不超过7680px。
  • 频繁更改页面宽高会触发Web组件重新布局,影响体验。
  • 不支持瀑布流网页(下拉到底部加载更多)。
  • 仅支持高度自适应,不支持宽度自适应。
  • 由于高度自适应网页高度,您无法通过修改组件高度属性来修改组件高度。
3、HarmonyOS 图片按压效果的实现?

设置resizable属性可以实现图片拉伸效果,使用如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-image-V5#ZH-CN_TOPIC_0000001930756873__

4、HarmonyOS 如何加载本地沙盒中的html?

请问在解决跨域问题的前提下,正常加载本地沙盒中的html

设置web组件的url为:‘file://’ + this.context.filesDir +’/index.html’ 即可,其中获取应用文件沙箱路径方法可参考如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-context-stage-V5

5、HarmonyOS 页面内组件如何感知路由返回传参?

当前路由页面B页面通过router.back({ url: ‘’, params: {} })返回上一个页面A页面,A页面可通过onPageShow生命周期获取路由返回参数,A页面内的引用组件如何不依赖A页面的生命周期感知返回路由传参?

组件中是可以获得router传递的参数的。可以主动获取或者使用eventHub在组件中订阅并在返回时触发。

eventHub使用:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inner-application-eventhub-V5


http://www.kler.cn/a/570049.html

相关文章:

  • IP-----BGP协议
  • Ai-web 1.0靶场通关攻略
  • [特殊字符] Django 常用命令
  • MySql面试总结(二)
  • WireGuard搭建网络,供整个公司使用
  • 基于 RK3568 / IMX6ULL / STM32MP157 的智能车载系统
  • 基于YALMIP和cplex工具箱的IEEE33微电网故障处理电网重构matlab模拟与仿真
  • OceanBase接入DeepSeek,AI落地改写行业规则
  • 指针的进阶(提高篇)
  • 11.字符函数和字符串函数
  • js的简单介绍
  • 算法-回溯篇03-电话号码的字母组合
  • codewave初识
  • 一文讲清楚 MySQL 事务隔离级别和实现原理
  • Linux查看TP6 command定时任务并重启
  • CSS - 妙用Sass
  • shell脚本编程实践第6天
  • 高性能采集服务上线回顾
  • React 各模块相关全面面试及答案解析
  • 毓恬冠佳即将登陆资本市场,深耕汽车天窗领域,引领行业创新发展