登封网站建设公司/seo优化关键词

登封网站建设公司,seo优化关键词,计算机网站开发与技术专业介绍,小型企业网站建设旅游景点网论文鸿蒙中存在一些无感监听,这些监听经过系统API封装使用很简单,但是对实际业务开发中有很重要,例如埋点业务、数据统计、行为上报、切面拦截等。 Navigation的页面切换 在鸿蒙中Navigation被用来作为路由栈进行页面跳转,如果你想知…

鸿蒙中存在一些无感监听,这些监听经过系统API封装使用很简单,但是对实际业务开发中有很重要,例如埋点业务、数据统计、行为上报、切面拦截等。

Navigation的页面切换

在鸿蒙中Navigation被用来作为路由栈进行页面跳转,如果你想知道页面的路由栈,以及前后切换的页面,可以通过官方提供的无感监听的页面切换navDestinationSwitch。

  private _navDestinationListener() {this.uiContext?.getUIObserver().on('navDestinationSwitch', (info: uiObserver.NavDestinationSwitchInfo) => {let to = info.to;if (to != 'navBar') {let navName = `${to.name.toString()}#${to.navDestinationId}`;}});}
    this.uiContext?.getUIObserver().off('navDestinationSwitch');

点击事件的监听

通过对系统控件设置customProperty,可以通过didClick进行点击事件拦截,相当于对全部的系统控件可以hook处理。

  @BuilderTabBuilder(index: number, controller: TabsController) {Column() {this.CanvasComponent(index, this.getCanvasRenderingContext())}.onClick(() => {}).layoutWeight(1).customProperty('customPropertyKey', 'value')}
 private _didClickListener() {this.uiContext?.getUIObserver().on('didClick', (event: GestureEvent, frameNode?: FrameNode) => {if (frameNode == null) {return;}frameNode.getCustomProperty('customPropertyKey')});}
    this.uiContext?.getUIObserver().off('didClick');

监听TabContent页面的切换事件

在鸿蒙中页签Tabs控件的使用频率比较高,如果想知道哪个子TabContent被点击了,就可以使用监听TabContent页面的切换事件。

 private _tabContentUpdateListener() {this.uiContext?.getUIObserver().on('tabContentUpdate', (info: uiObserver.TabContentInfo) => {if (info.state != uiObserver.TabContentState.ON_SHOW) {return;}this._handleContentUpdateEvent(info.id, info.uniqueId, info.index, info.tabContentUniqueId, true);let frameNode = this.uiContext?.getFrameNodeByUniqueId(info.tabContentUniqueId);});}

    this.uiContext?.getUIObserver().off('tabContentUpdate');
![](https://i-blog.csdnimg.cn/img_convert/19cb50e8b0bf17ea2a72d203739ce9cc.png)

Aspect插桩能力

Aspect类用于封装提供切面能力(Aspect Oriented Programming,简写AOP)的接口,这些接口可以用来对类方法进行前后插桩或者替换实现。

在指定的类对象的原方法执行前插入一个函数。addBefore接口执行完成后,都会先执行插入的函数逻辑,再执行指定类对象的原方法。

在指定的类方法执行后插入一段逻辑。最终返回值是插入函数执行后的返回值。

通过插桩处理,在弹框前后做一些逻辑,例如在弹框前后设置变量,就可以判断弹框是否有触发。

 util.Aspect.addBefore(CustomDialogController, 'open', false, () => {AppStorage.setOrCreate(BusinessUseConstant.CUSTOMDIALOG_ISOPEN, true)});util.Aspect.addBefore(CustomDialogController, 'close', false, () => {AppStorage.setOrCreate(BusinessUseConstant.CUSTOMDIALOG_ISOPEN, false)});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/73570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

批量处理word里面表格的空白行

1,随便打开一个word文档。 2,按下Alt F11 VBA编辑器,在左侧的「工程资源管理器」窗口中找到Normal 项目,右键选择插入->模块。 弹出一下弹窗 3,输入一下代码 代码: Sub RemoveEmptyTableRows()Dim tbl As TableDim row As R…

3ds Max 2026 新功能全面解析

一、视口性能与交互体验升级 1. Hydra 2.0 视口渲染引擎 3ds Max 2026 引入了 Hydra 2.0,大幅优化了视口渲染性能,尤其是在处理复杂场景和高质量实时预览时,流畅度提升显著。 支持USD(通用场景描述)格式&#xff0c…

JVM垃圾回收笔记02-垃圾回收器

文章目录 前言1.串行(Serial 收集器/Serial Old 收集器)Serial 收集器Serial Old 收集器相关参数-XX:UseSerialGC 2.吞吐量优先(Parallel Scavenge 收集器/Parallel Old 收集器)Parallel Scavenge 收集器Parallel Old 收集器相关参数-XX:UseParallelGC ~ -XX:UseParallelOldGC-…

使用AI一步一步实现若依(26)

功能26:新增一个新员工培训页面 功能25:角色管理 功能24:菜单管理 功能23:从后端获取路由/菜单数据 功能22:用户管理 功能21:使用axios发送请求 功能20:使用分页插件 功能19:集成My…

vue响应式原理剖析

一、什么是响应式? 我们先来看一下响应式意味着什么?我们来看一段代码: m有一个初始化的值,有一段代码使用了这个值; 那么在m有一个新的值时,这段代码可以自动重新执行; let m = 20 console.log(m) console.log(m * 2)m = 40上面的这样一种可以自动响应数据变量的代码机…

无人机航电系统电池技术解析!

1. 常用电池类型 锂聚合物电池(LiPo) 特点:高能量密度、轻量化、放电效率高,是目前主流选择。 缺点:对过充/过放敏感,需严格管理,存在轻微膨胀或起火风险。 锂离子电池(Li-ion…

ubuntu下终端打不开的排查思路和解决方法

问题现象描述:ubuntu开机后系统桌面显示正常,其他图形化的app也都能打开无异常,唯独只有terminal终端打不开,无论是鼠标点击终端软件,还是ctrlaltt,还是altF2后输入gnome-terminal后按回车,这三…

Maven入门

1、简介 Apache Maven是一个项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。 2、作用 1)依赖导…

Rk3588,Opencv读取Gmsl相机,Rga yuv422转换rgb (降低CPU使用率)

RK3588, 使用OpenCv 读取 gmsl 相机,获得yuv422格式图像, 使用 rga 转换 rgb 图像。减少cpu占用率. 查看相机信息 v4l2-ctl --all -d /dev/cam0 , 查看自己相机分辨率,输出格式等信息,对应修改后续代码测试… Driver Info:Driver name : rkcifCard type : rkc…

【NLP 49、提示工程 prompt engineering】

目录 一、基本介绍 语言模型生成文本的基本特点 提示工程 prompt engineering 提示工程的优势 使用注意事项 ① 安全问题 ② 可信度问题 ③ 时效性与专业性 二、应用场景 能 ≠ 适合 应用场景 —— 百科知识 应用场景 —— 写文案 应用场景 —— 解释 / 编写…

SpringCould微服务架构之Docker(3)

1)什么是镜像和容器? 2)DockerHub: 3)docker的架构如下:

智慧高速,安全护航:视频监控平台助力高速公路高效运营

随着我国高速公路里程的不断增长,交通安全和运营效率面临着前所未有的挑战。传统的监控方式已难以满足现代化高速公路管理的需求,而监控视频平台的出现,则为高速公路的安全运营提供了强有力的技术支撑。高速公路视频监控联网解决方案 高速公路…

AI 在测试中的应用:从自动化到智能化的未来

阅读原文 在上一篇中,我们探讨了测试左移与右移如何构建质量保障的全流程闭环。现在,我们将目光投向更前沿的领域——AI在测试中的应用。这不仅是技术的演进,更是测试理念的革命:从"自动化执行"到"智能决策"…

# 使用自定义Shell脚本hello快速配置Linux用户账户

使用自定义Shell脚本快速配置Linux用户账户 在学校实验室管理Linux服务器,或者公司小团队管理服务器时,大家需要一个能隔离自己服务,但是自己又需要对服务器的完整权限的情形。创建和配置用户账户是一项常见但繁琐的任务。特别是当你需要频繁…

Unity Animation的其中一种运用方式

Animation是Unity的旧的动画系统,先说目的,其使用是为了在UI中播放动效,并且在动效播放结束后接自定义事件而设计的 设计的关键点在于,这个脚本不是通过Animation直接播放动画片段,而是通过修改AnimationState的nor…

matplotlib——南丁格尔玫瑰

南丁格尔玫瑰图(Nightingale Rose Chart),是一种特殊形式的柱状图,它以南丁格尔(Florence Nightingale)命名,她在1858年首次使用这种图表来展示战争期间士兵死亡原因的数据。 它将数据绘制在极坐…

6.go语言函数

Go语言中的函数是组织代码的最小单元,用于封装一段代码,完成特定的功能。函数的使用可以减少代码冗余,提高代码的可读性和可维护性。 函数的基本定义和语法 在Go语言中,定义一个函数的基本语法如下: func functionN…

SpringCould微服务架构之Docker(4)

Docker ce是社区版。 安装docker之前,先安装yum-util 。 安装docker之前,一定要先关闭防火墙。

Keepalived 实现高可用方案

Keepalived简介 ‌Keepalived‌ 是一个基于 ‌VRRP(Virtual Router Redundancy Protocol)协议‌的高可用性解决方案,主要用于实现‌服务故障自动切换(Failover)和负载均衡‌。通过管理虚拟 IP(VIP&#xf…

WPS JS宏编程教程(从基础到进阶)--第二部分:WPS对象模型与核心操作

第二部分:WPS对象模型与核心操作 WPS对象的属性、方法、集合 工作簿对象常用表达方式工作表对象常用表达方式单元格对象常用表达方式 单元格操作实战 单元格复制与重定位单元格偏移与尺寸调整 颜色设置专题 索引颜色与RGB颜色按条件动态设置单元格颜色 第二部分&…