【每日学点鸿蒙知识】人脸活体检测、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);}
}

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

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

相关文章

JSON结构快捷转XML结构API集成指南

JSON结构快捷转XML结构API集成指南 引言 在当今的软件开发世界中&#xff0c;数据交换格式的选择对于系统的互操作性和效率至关重要。JSON&#xff08;JavaScript Object Notation&#xff09;和XML&#xff08;eXtensible Markup Language&#xff09;是两种广泛使用的数据表…

期权懂|期权入门知识:开通50ETF期权需要什么条件?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 开通50ETF期权需要什么条件&#xff1f; 一、基本资格要求 &#xff08;1&#xff09;年龄限制&#xff1a;投资者必须年满18周岁&#xff0c;具备完全民事行为能力。 &#…

实景三维点云处理专业软件ArcGIS根据DSM生成地表点云集

常见的实景三维处理软件及其特色功能如下&#xff1a; 一、专业实景三维建模软件 Agisoft Metashape 高精度建模&#xff1a;能够生成高精度的三维模型&#xff0c;精度可以达到厘米级甚至毫米级&#xff0c;适用于需要详细测量和分析的项目&#xff0c;如文物保护和建筑测量。…

实战指南:Shiro、CAS打造完美单点登录体验

引言 想象一下&#xff0c;在日常工作中&#xff0c;我们经常需要进行系统认证和授权。当用户尝试登录一个网站时&#xff0c;他们需要提供用户名和密码&#xff0c;网站会检查这些信息&#xff0c;确认用户是谁。这就是认证的过程。 一旦用户被认证&#xff0c;他们可能会尝…

阿里云大模型ACP高级工程师认证模拟试题

阿里云大模型ACP高级工程师认证模拟试题 0. 引言1. 模拟试题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题单选题单选题多选题多选题单选题多选题单…

cuda-cuDnn

cuda sudo /bin/sh cuda_11.7.0_515.43.04_linux.run cudnn cuDNN Archive | NVIDIA Developer Linux 系统 CUDA 多版本共存以及切换 – 颢天 安装cuda # 如果已经安装过驱动&#xff0c;驱动不需要再安装&#xff0c;取消勾选 安装cuDNN&#xff0c;cuda-cuDNN对应关系见…

QComboBox中使用树形控件进行选择

事情是这样的&#xff0c;要在一个ComboBox中通过树形结构进行内容的选择。 默认的QComboBox展开是下拉的列表。因此需要定制一下。 效果就是这样的 实现上面效果的核心代码就是下面这样的 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { treenew…

Error: The Calculated NPWS= 84330 != The Read NPWS= 84328

Tutorials — VASPKIT 1.5 documentation 设置PRECN 或者降低截断能 To aviod the error ’ERROR! Computed NPLANE **** ! input NPLANE ****’, please set PRECN or a medium/lower value of energy cuttoff.

【网络协议】路由信息协议 (RIP)

未经许可&#xff0c;不得转载。 路由信息协议&#xff08;Routing Information Protocol&#xff0c;简称 RIP&#xff09;是一种使用跳数&#xff08;hop count&#xff09;作为路由度量标准的路由协议&#xff0c;用于确定源网络和目标网络之间的最佳路径。 文章目录 什么是…

LoRA微调系列笔记

系列文章目录 第一章&#xff1a;LoRA微调系列笔记 第二章&#xff1a;Llama系列关键知识总结 第三章&#xff1a;LLaVA模型讲解与总结 文章目录 系列文章目录LoRA&#xff1a;Low-Rank Adaptation of Large Language Models目的&#xff1a;依据&#xff1a;优势&#xff1a;…

在K8S中,节点状态哪个组件负责上报?

在Kubernetes中&#xff0c;节点状态是kubelet组件负责定期上报的。Kubelet是运行在每个节点上的代理程序&#xff0c;它与Kubernetes Master节点上的控制面板组件紧密协作&#xff0c;以确保节点上的Pod能够正确运行。 kubelet的主要职责之一就是&#xff1a;与Kubernetes API…

SRS 服务器入门:实时流媒体传输的理想选择

在当今视频流媒体需求爆炸式增长的时代&#xff0c;如何选择一款高效、稳定且功能强大的流媒体服务器成为了许多开发者和企业关注的焦点。而 SRS&#xff08;Simple Realtime Server&#xff09;作为一款开源的流媒体服务器&#xff0c;以其卓越的性能和灵活的功能&#xff0c;…

C++第五六单元测试

1【单选题】在公有派生类的成员函数不能直接访问基类中继承来的某个成员&#xff0c;则该成员一定是基类中的&#xff08; C &#xff09;。&#xff08;2.0分&#xff09; A、公有成员B、保护成员C、私有成员D、保护成员或私有成员 注意从类外访问与从派生类中访问 2【单…

JPA查询部分字段的最佳实践

最近在接手一个项目&#xff0c;用的是JPA&#xff0c;以前没使用过。在开发新的需求过程中&#xff0c;发现有查询部分字段的情况&#xff0c;网上逛了半天&#xff0c;发现都是抄来抄去的“古文”。于是用英文搜索了下&#xff0c;总结了以下几点。 版本信息&#xff1a;Spr…

Spring Boot + Redisson 封装分布式锁

目标&#xff1a;一行代码调用&#xff0c;简单粗暴。 基操&#xff1a;自动加锁&#xff0c;自动解锁&#xff0c;自动处理异常&#xff0c;自动处理锁超时等。 安装 redis redisson <dependency><groupId>org.springframework.boot</groupId><artifac…

使用Python可视化有压缩格式的Bitmap(BMP)图像调色板数据

使用Python可视化有压缩格式的Bitmap BMP图像调色板数据 参考文章一、调色板数据二、测试代码三、测试结果 参考文章 有压缩格式的Bitmap(BMP)图像显示调色板数据和图像数据Bitmap(BMP)图像信息分析主要说明带压缩的形式Bitmap(BMP)图像信息验证 一、调色板数据 Color Palette…

「Mac畅玩鸿蒙与硬件49」UI互动应用篇26 - 数字填色游戏

本篇教程将带你实现一个数字填色小游戏&#xff0c;通过简单的交互逻辑&#xff0c;学习如何使用鸿蒙开发组件创建趣味性强的应用。 关键词 UI互动应用数字填色动态交互逻辑判断游戏开发 一、功能说明 数字填色小游戏包含以下功能&#xff1a; 数字选择&#xff1a;用户点击…

Day62 图论part11

Floyd 算法精讲 Floyd 算法代码很简单&#xff0c;但真正理解起原理 还是需要花点功夫&#xff0c;大家在看代码的时候&#xff0c;会发现 Floyd 的代码很简单&#xff0c;甚至看一眼就背下来了&#xff0c;但我为了讲清楚原理&#xff0c;本篇还是花了大篇幅来讲解。 代码随想…

html+css+js网页设计 美食 美食家6个页面

htmlcssjs网页设计 美食 美食家6个页面 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#xf…

21. 【.NET 8 实战--孢子记账--从单体到微服务】--简易权限--补充--自动添加角色可访问接口

上一篇文章我们一起编写了自动添加接口地址&#xff0c;这一篇文章我们补充简易权限中的自动添加角色可访问接口。 一 实现 首先&#xff0c;我们Initialization文件夹下新建AddRolePath类&#xff0c;这个类用于初始化数据库中SysRoleUrl表&#xff0c;代码如下&#xff1a;…