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

【每日学点鸿蒙知识】人脸活体检测、NodeController刷新、自动关闭输入框、Row设置中间最大宽、WebView单例

1、HarmonyOS 人脸活体检测调用?

H5调用应用侧方法可参考以下demo:

index.ets
Web()//注册方法.javaScriptProxy({object: this.testObj,name: "testObjName",methodList: ["getLocationTS"],controller: this.webController})class testClass {constructor() {}async getLocationTS(): Promise<string> {//应用侧方法逻辑}
H5页面
<!DOCTYPE html>
<html>
<head><link rel="stylesheet" type="text/css"><meta charset="UTF-8"><title>获取定位信息</title><style>#prize {border-radius: 16px 16px 16px 16px;background-image: linear-gradient(180deg, #A2DAFF 0%, #EAF5FF 100%);margin-left: 1.82%;margin-top: 1.43%;width: 96.5%;height: 96.7%;}</style>
</head>
<body>
<div style="width:1000px;height:500px"><input style="width:1000px;height:100px;font-size:30px" id="inputText"/><p style="width:1000px;height:100px;font-size:30px" id="demo">p1</p><button style="width:1000px;height:100px" onclick="getLocation()"><span style="font-size:30px">获取定位</span></button>
</div><script>function getLocation() {
<!--        ArtTS侧返回的如果是 promise对象,使用改方法处理 -->
<!--        具体可参考前端页面调用应用侧函数API,包含简单类型和复杂类型-->
<!--        https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/web-in-page-app-function-invoking-0000001844832802--><!-- H5侧方法调用 -->testObjName.getLocationTS().then((param)=>{ document.getElementById("demo").innerHTML = "testObjName.getLocationTS()--"+JSON.stringify(param) }).catch((param)=>{ document.getElementById("demo").innerHTML = "testObjName.getLocationTS()--"+JSON.stringify(param) })}
</script>
</body>
</html>
}
2、HarmonyOS NodeController调用this.rebuild()后,画面没有刷新?

使用NodeController,首次进入页面,makeNode被自动回调,绘制出了3个题目框。之后外部调用onSelectBoxChange,更新了nodeArray并手动调用this.rebuild(),makeNode再次被回调,但是页面上并没有出现新绘制的框。

参考demo:

import { RenderNode, DrawContext, FrameNode, NodeController } from "@ohos.ArkUI.node"
import drawing from "@ohos.graphics.drawing"class TextRenderNode extends RenderNode {async draw(context: DrawContext) {const canvas = context.canvas;const pen = new drawing.Pen();pen.setStrokeWidth(5);pen.setColor({alpha: 255, red: 255, green: 0, blue: 0});let path = new drawing.Path();path.moveTo(10,10);path.arcTo(10, 10, 200, 200, 0, 150);path.close();canvas.attachPen(pen);canvas.drawPath(path);canvas.detachPen();}
}class MyNodeController extends NodeController {private rootNode: FrameNode | null = null;private nodeArray: Array<TextRenderNode> = []addMyNode(item:TextRenderNode){this.nodeArray.push(item)}makeNode(uiContext: UIContext): FrameNode | null {this.rootNode = new FrameNode(uiContext);const renderNode = this.rootNode.getRenderNode();if (renderNode === null) {return this.rootNode;}if (renderNode) {renderNode.clearChildren()this.nodeArray.forEach((item) => {renderNode.appendChild(item)})}return this.rootNode;}// onTouchEvent(event: TouchEvent): void {//   this.nodeArray.forEach((node, index) => { // this是undefined,无法获取到当前类的一些参数<---------//     console.log(JSON.stringify(this.nodeArray) + '德玛西亚')//   })// }
}@Entry
@Component
struct Index {@State newNode:TextRenderNode = new TextRenderNode();@State nodeCV:MyNodeController = new MyNodeController()tempY = 0build() {Column() {Column() {NodeContainer(this.nodeCV).width('100%').height(200)Button('Invalidate').onClick(() => {let newNode = new TextRenderNode()newNode.frame = { x: 0, y: this.tempY, width: 200, height: 100 }this.nodeCV.addMyNode(newNode)this.nodeCV.rebuild()this.tempY += 100})}.width('100%').height('100%')}.height('100%')}
}
3、HarmonyOS TextInput输入的时候,当文字达到一定数量的时候,自动关闭输入框?

设置TextInput输入字符数量达到设定长度时自动关闭demo

@Entry
@Component
struct FirstTest {@State message1: string = 'Hello World';private controller:TextInputController = new TextInputController();build() {Column() {Text("FirstTest:" + this.message1).fontSize(25).fontWeight(FontWeight.Bold)TextInput({placeholder:'Waiting for input',text:$$this.message1,controller:this.controller}).fontSize(25).fontWeight(FontWeight.Bold).onChange(()=>{if(this.message1.length >= 20){this.controller.stopEditing()}})}}
}
4、HarmonyOS Row 怎么设置中间最大宽度?

Row 怎么设置中间最大宽度
使用constraintSize({maxWidth: Infinity})来对尺寸范围限制

5、HarmonyOS 如何创建单例的WebView组件?

只可以创建单例的对象,示例:

export class GlobalContext {private constructor() {}private static instance: GlobalContext;private _objects = new Map<string, Object>();public static getContext(): GlobalContext {if (!GlobalContext.instance) {GlobalContext.instance = new GlobalContext();}return GlobalContext.instance;}getObject(value: string): Object | undefined {return this._objects.get(value);}setObject(key: string, objectClass: Object): void {this._objects.set(key, objectClass);}
}

相关文章:

【每日学点鸿蒙知识】人脸活体检测、NodeController刷新、自动关闭输入框、Row设置中间最大宽、WebView单例

1、HarmonyOS 人脸活体检测调用&#xff1f; H5调用应用侧方法可参考以下demo&#xff1a; index.ets Web()//注册方法.javaScriptProxy({object: this.testObj,name: "testObjName",methodList: ["getLocationTS"],controller: this.webController})cla…...

Android TV端弹出的PopupWindow没有获取焦点

在 TV 开发中&#xff0c;焦点管理是通过 Focus Navigation 实现的&#xff0c;PopupWindow 默认不接受焦点&#xff0c;导致遥控器无法选择弹窗内的控件。这是因为 PopupWindow 默认不会将焦点传递到其内容视图上。 要解决问题&#xff0c;可以通过以下步骤调整 PopupWindow …...

从0开始的docker镜像制作-ubuntu22.04

从0开始的docker镜像制作-ubuntu22.04 一、拉取基础ubuntu22.04镜像二、进入拉取的docker镜像中&#xff0c;下载自己需要的安装包三、安装需要的系统软件四、打包现有镜像为一个新的镜像五、推送打包的镜像到私有docker服务器1.编辑docker文件&#xff0c;使其允许http传输和对…...

1Panel自建RustDesk服务器方案实现Windows远程macOS

文章目录 缘起RustDesk 基本信息实现原理中继服务器的配置建议 中继服务器自建指南准备服务器安装1Panel安装和配置 RustDesk 中继服务防火墙配置和安全组配置查看key下载&安装&配置客户端设置永久密码测试连接 macOS安装客户端提示finder写入失败hbbs和hbbr说明**hbbs…...

STM32完全学习——使用定时器1精确延时

一、定时器的相关配置 首先一定要是递减定时器&#xff0c;递增的不太行&#xff0c;控制的不够准确&#xff0c;其次在大于10微秒的延时是非常准确的&#xff0c;小于的话&#xff0c;就没有那没准&#xff0c;但是凑合能用。误差都在一个微秒以内。使用高级定时器也就是时钟…...

深度学习——损失函数汇总

1. 连续值损失函数 总结:主要使用胡贝儿损失函数,应用于连续数值的预测之间的误差损失,参考地址 import torch import torch.nn as nna = torch.tensor([[1, 2], [3, 4]], dtype=torch.float) b = torch.tensor([[3, 5], [8, 6]], dtype=torch.float)loss_fn1 = torch.nn.M…...

1、单片机寄存器-io输入实验笔记

1、硬件 时钟总线如下&#xff1a; PB端口挂载在AHB1总线上&#xff0c;因此要对该位进行使能。 引脚 LED0和LED1挂载在PB0和PB1上&#xff1a;推挽输出、100M、 上拉默认高电平&#xff0c;低电平点亮。 2、软件 位带操作 #ifndef _IO_BIT_H_ #define _IO_BIT_H_#define …...

记忆旅游系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…...

CentOS7下的 OpenSSH 服务器和客户端

目录 1. 在 IP 地址为 192.168.98.11 的 Linux 主机上安装 OpenSSH 服务器&#xff1b; 2. 激活 OpenSSH 服务&#xff0c;并设置开机启动&#xff1b; 3. 在 IP 地址为 192.168.98.22 的 Linux 主机上安装 OpenSSH 客户端&#xff0c;使用客户端命令&#xff08;ssh、 scp、…...

RabbitMQ基础篇之Java客户端 Topic交换机

文章目录 Topic 交换机概述 Routing Key 与 Binding Key优缺点及场景优点缺点应用场景 案例演示创建队列和交换机&#xff1a;消费者代码&#xff1a;消息发送代码&#xff1a;测试&#xff1a; 总结 Topic 交换机概述 路由机制&#xff1a; Topic交换机与Direct交换机类似&am…...

微服务-Sentinel新手入门指南

微服务为什么要使用流控降级组件 为了提高系统运行期间的稳定性和可用性 在微服务环境下&#xff0c;服务之间存在复杂的调用关系&#xff0c;单个服务的故障或过载可能会迅速影响到整个系统&#xff0c;导致服务雪崩效应。流控组件可以限制进入系统的流量&#xff0c;防止系…...

传统听写与大模型听写比对

在快节奏的现代生活中&#xff0c;听写技能仍然是学习语言和提升认知能力的重要环节。然而&#xff0c;传统的听写练习往往枯燥乏味&#xff0c;且效率不高。现在&#xff0c;随着人工智能技术的发展&#xff0c;大模型听写工具的问世&#xff0c;为传统听写带来了革命性的变革…...

http性能测试命令ab

华子目录 使用方法常用选项示例输出解读注意事项 在 Linux系统中&#xff0c; ab&#xff08; ApacheBench&#xff09;是一个用于 测试HTTP服务器性能的 工具。它是 Apache HTTP服务器项目的 一部分&#xff0c;专门设计用来模拟 多个用户对 服务器发起 并发请求&am…...

前端:轮播图常见的几种实现方式

目录 前言 一、轮播图是什么&#xff1f; 二、实现方法 1.使用纯 HTML、CSS、JavaScript 实现 2.使用组件来快速实现 总结 前言 在学习前端的过程中&#xff0c;总是有要实现轮播图效果的时候&#xff0c;本文就介绍了轮播图常见的几种实现方式。 一、轮播图是什么&#xff1f…...

Pytest基础01: 入门demo脚本

目录 1 Pytest接口测试 1.1 最简单版hello world 1.2 pytest.ini 2 pytest兼容unittest 3 封装pytest执行入口 1 Pytest接口测试 Pyest是一个可以用于接口测试的强大框架&#xff0c;开源社区也有非常多的pytest插件。 按江湖传统&#xff0c;学习一个新语言或者新框架&…...

ruoyi 多租户 开启后针对某一条sql不适用多租户; 若依多租户sql规则修改

文章参考&#xff1a;多租户功能 | Ruoyi-TDesign 忽略租户​ 1.如果需要指定单独 SQL 不开启过滤&#xff0c;可在对应的 Mapper 接口添加如下忽略注解&#xff1a; InterceptorIgnore(tenantLine "true", dataPermission "false") 此处注意事项 使…...

driftingblues6靶机

打开靶场 查看页面源代码&#xff0c;最下面有一个注释&#xff0c;提供了一个网址 vmlist.github.io&#xff0c;我们去访问一下 这里是一个github页面&#xff0c;提供攻防虚拟机的下载&#xff0c;对我们解题并没有什么有用的信息&#xff0c;我们再去扫描端口 发现只有80端…...

Neo4j GDS 2.0 安装与配置

Neo4j GDS 2.0 安装与配置 GDS插件安装&#xff1a;Neo4j官方文档 1. GDS简介 Neo4j Graph Data Science (GDS) 库作为 Neo4j Graph Database 的插件提供。该插件需要安装到数据库中并在 Neo4j 配置中列入白名单。有两种主要方法可以实现这一点&#xff0c;我们将在本章中详…...

A*算法与人工势场法结合的路径规划(附MATLAB源码)

A*算法与人工势场法&#xff08;APF&#xff09;结合实现路径规划 路径规划是机器人、无人机及自动驾驶等领域中的一个重要问题。本文结合了经典的 A* 算法与 人工势场法&#xff08;Artificial Potential Field, APF&#xff09;&#xff0c;实现了一种改进的路径规划方法。下…...

BootstrapTable处理表格

需求背景 历史项目使用 BootstrapTable 作为前端组件 应客户需要调整&#xff1a; 冻结前四列对于大文本文字显示部分内容&#xff0c;鼠标悬浮显示完整内容 冻结列 1、引入相关CSS,JS CSS <link rel"stylesheet" href"/css/bootstrap.min.css"> …...

LoadRunner Developer实战:如何在VSCode中集成性能测试(含Jenkins流水线配置)

LoadRunner Developer实战&#xff1a;VSCode集成与Jenkins流水线配置全指南 在DevOps实践中&#xff0c;性能测试左移已成为提升软件质量的关键策略。作为Micro Focus推出的开发者友好型工具&#xff0c;LoadRunner Developer让开发团队能在编码阶段就发现性能瓶颈。本文将手…...

如何用Obsidian PDF++插件打造终极PDF阅读与标注体验

如何用Obsidian PDF插件打造终极PDF阅读与标注体验 【免费下载链接】obsidian-pdf-plus PDF: the most Obsidian-native PDF annotation & viewing tool ever. Comes with optional Vim keybindings. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-pdf-plus …...

openclaw里面如何添加channel

在 OpenClaw 中添加 Channel&#xff08;消息通道 / 渠道&#xff09;&#xff0c;核心是通过 CLI 命令 或直接编辑 配置文件&#xff0c;将 Telegram、Discord、飞书、WhatsApp 等 IM 平台接入网关&#xff08;Gateway&#xff09;&#xff0c;并绑定到 Agent。以下是完整、可…...

颠覆式AI视觉自动化:3大突破重新定义UI测试与跨平台交互

颠覆式AI视觉自动化&#xff1a;3大突破重新定义UI测试与跨平台交互 【免费下载链接】midscene AI-powered, vision-driven UI automation for every platform. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 在数字化转型加速的今天&#xff0c;UI自动化…...

Meshroom终极指南:零基础学会开源3D重建,从照片到模型的完整方案

Meshroom终极指南&#xff1a;零基础学会开源3D重建&#xff0c;从照片到模型的完整方案 【免费下载链接】Meshroom Node-based Visual Programming Toolbox 项目地址: https://gitcode.com/gh_mirrors/me/Meshroom 想要从普通照片创建专业级3D模型吗&#xff1f;Meshro…...

如何实现固定翼无人机编队飞行?PX4开源方案深度解析与实践指南

如何实现固定翼无人机编队飞行&#xff1f;PX4开源方案深度解析与实践指南 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 多无人机编队飞行技术正从实验室走向实际应用&#xff0c;在测绘、农业、…...

django做动态【个人主页】

一、项目概述与目标动态个人主页的定义与核心功能&#xff08;博客展示、项目集、联系表单等&#xff09;Django框架的优势&#xff08;MTV模式、ORM、Admin后台等&#xff09;技术栈预览&#xff08;Python 3.x, Django 3.x, Bootstrap 5, SQLite/PostgreSQL&#xff09;二、环…...

StructBERT情感分类模型在教育领域的情绪分析应用

StructBERT情感分类模型在教育领域的情绪分析应用 教育工作者如何从海量学生反馈中快速识别情绪变化&#xff1f;AI情感分析技术正在重新定义教学体验优化方式 1. 教育场景中的情感分析需求 在日常教学过程中&#xff0c;学生通过各种渠道表达他们的感受和体验&#xff1a;课程…...

Java函数计算迁移避坑清单:12个被官方文档隐瞒的关键限制(含Classloader隔离失效实录)

第一章&#xff1a;Java函数计算迁移避坑清单&#xff1a;12个被官方文档隐瞒的关键限制&#xff08;含Classloader隔离失效实录&#xff09;Java函数计算&#xff08;如阿里云FC、AWS Lambda Java Runtime&#xff09;在迁移传统Spring Boot应用时&#xff0c;常因底层沙箱机制…...

RAG集成:如何让你的企业知识库成为AI的“长期记忆”

核心命题&#xff1a;AI没有记忆&#xff0c;但你的知识库可以成为它的“外脑”。RAG&#xff08;检索增强生成&#xff09;是GEO的终极形态&#xff1a;让企业私有数据成为AI生成答案的唯一信源。引言&#xff1a;老陈的新困境——当AI“看见”了你的店&#xff0c;却“看不见…...