- 博客(33)
- 收藏
- 关注
原创 【鸿蒙开发】第十五章 H5与端侧交互、Cookies以及Web调试
Web组件支持在应用拦截到页面请求后自定义响应请求能力。开发者通过接口来实现自定义资源请求响应。自定义请求能力可以用于开发者自定义Web页面响应、自定义文件资源响应等场景。Web网页上发起资源加载请求,应用层收到资源请求消息。应用层构造本地资源响应消息发送给Web内核。Web内核解析应用层响应信息,根据此响应信息进行页面资源加载。在下面的示例中,Web组件通过拦截页面请求“https://www.example.com/test.html”, 在应用侧代码构建响应资源,实现自定义页面响应场景。
2024-11-15 11:40:50 124
原创 【鸿蒙开发】第十四章 Web组件的使用、基本属性与事件
Web组件用于在应用程序中显示Web页面内容,为开发者提供页面加载、页面交互、页面调试等能力。页面加载:Web组件提供基础的前端页面加载的能力,包括:加载网络页面、本地页面、html格式文本数据。页面交互:Web组件提供丰富的页面交互的方式,包括:设置前端页面深色模式,新窗口中加载页面,位置权限管理,Cookie管理,应用侧使用前端页面JavaScript等能力。页面调试:Web组件支持使用Devtools工具调试前端页面。
2024-11-15 11:21:58 180
原创 【鸿蒙开发】第十三章 ArkTS基础类库-容器(数据结构)
集合中的value值的查找依赖于hash以及二分查找算法,通过一个数组存储hash值,然后映射到其他数组中的value值,value的类型满足ECMA标准中要求的类型。容器类采用了类似静态语言的方式来实现,并通过对存储位置以及属性的限制,让每种类型的数据都能在完成自身功能的基础上去除冗余逻辑,保证了数据的高效访问,提升了应用的性能。value的类型满足ECMA标准中要求的类型。,通过一个数组存储hash值,然后映射到其他数组中的key值以及value值,key的类型满足ECMA标准中要求的类型。
2024-11-15 11:15:39 83
原创 【鸿蒙开发】第十二章 ArkTS基础类库-并发
系统默认会启动一个任务工作线程,当任务较多时会扩容,工作线程数量上限跟当前设备的物理核数相关,具体数量内部管理,保证最优的调度及执行效率,长时间没有任务分发时会缩容,减少工作线程数量。RemoteObject对象的主要作用是实现远程通信的功能,它允许在不同的进程间传递对象的引用,使得不同进程之间可以共享对象的状态和方法,服务提供者必须继承此类,RemoteObject对象的创建可以参考RemoteObject的实现。如果同步任务之间有关联性,则需要使用Worker,例如无法单例创建的类对象实现的方法。
2024-11-15 10:36:54 364
原创 【鸿蒙开发】第十一章 Stage模型应用组件-任务Mission
因为在MissionList中记录了任务(Mission)之间的启动关系,即如果Ability1通过startAbility启动Ability2,则会形成一个MissionList任务链:Ability1->Ability2,当Ability2页面栈返回到首页时,再次点击返回键,会返回到Ability1的页面。例如,对于UIAbility的多实例启动模式,可以根据不同的功能配置相应的任务快照的图标和名称。通过为每个任务快照设置不同的图标和名称,可以更轻松地区分和识别每个任务的功能。
2024-11-15 10:00:23 355
原创 【鸿蒙开发】第十章 Stage模型应用组件-线程和进程
当前的进程模型如下图所示。应用中(同一Bundle名称)的所有UIAbility和均是运行在同一个独立进程(主进程)中,如下图中绿色部分的“应用中(同一Bundle名称)的所有同一类型ExtensionAbility(除ServiceExtensionAbility和DataShareExtensionAbility外)均是运行在一个独立进程中,如下图中蓝色部分的“”、“”、其他。WebView拥有独立的渲染进程,如下图中黄色部分的“Render Process”。说明:仅系统应用支持构建和。
2024-11-15 09:50:51 440
原创 【鸿蒙开发】第九章 Stage模型应用组件-信息传递载体Want
我们学习了UIAbility组件,其中组件间的交互传递信息的媒介就是Want,本章节我们来更加深入学习Want的相关知识。Want是一种对象,用于在应用组件之间传递信息。
2024-11-15 09:30:08 166
原创 【鸿蒙开发】第八章 Stage模型应用组件-UIAbility
UIAbility组件是系统调度的基本单元,为应用提供绘制界面的窗口。一个应用可以包含一个或多个UIAbility组件。例如,在支付应用中,可以将入口功能和收付款功能分别配置为独立的UIAbility。每一个UIAbility组件实例都会在最近任务列表中显示一个对应的任务。
2024-11-15 09:10:17 335
原创 【鸿蒙开发】第七章 ArkTS语言UI范式-应用状态管理
我们了解了状态管理是什么,分别有哪些状态管理,并介绍了组件内状态管理的相关知识,本章节接着上一章节的内容,我们来继续学习应用状态管理和其他状态管理的相关知识。将选定的AppStorage属性保留在设备磁盘上。应用程序通过API,以决定哪些AppStorage属性应借助PersistentStorage持久化。UI和业务逻辑不直接访问PersistentStorage中的属性,所有属性访问都是对AppStorage的访问,AppStorage中的更改会自动同步到PersistentStorage。
2024-11-14 17:02:27 712
原创 【鸿蒙开发】第六章 ArkTS语言UI范式-组件状态管理
在前文的描述中,我们构建的页面多为静态界面。如果希望构建一个动态的、有交互的界面,就需要引入“状态”的概念。我们本章节来学习状态管理机制。
2024-11-14 16:24:36 715
原创 【鸿蒙开发】第五章 ArkTS语言UI范式-UI相关的装饰器
了解了自定义组件的创建与使用,本章节我们来学习下UI相关的装饰器。// 定义// 使用自定义组件内可以定义多个@Builder方法,对该组件私有不允许组件外调用,通过this访问自定义组件的状态变量而不是 参数传递。// 定义// 使用全局的自定义构建函数可以被整个应用获取,不允许使用this和bind方法。如果不涉及组件状态变化,建议使用全局的自定义构建方法。是属性方法,可以根据UI内部状态来设置样式,类似于css伪类,但语法不同。ArkUIfocused:获焦态。
2024-11-14 16:06:45 356
原创 【鸿蒙开发】第四章 ArkTS语言UI范式-基础语法
ArkTS定义了声明式UI描述自定义组件和动态扩展UI元素的能力,再配合ArkUI开发框架中的系统组件及其相关的事件方法属性方法等共同构成了UI开发的主体。ArkTS提供了多维度的状态管理机制。在UI开发框架中,与UI相关联的数据可以在组件内使用,也可以在不同组件层级间传递,比如父子组件之间、爷孙组件之间,还可以在应用全局范围内传递或跨设备传递。另外,从数据的传递形式来看,可分为只读的单向传递和可变更的双向传递。开发者可以灵活的利用这些能力来实现数据和UI的联动。ArkTS提供了渲染控制的能力。
2024-11-11 23:34:09 864
原创 【鸿蒙开发】第三章 ArkTS基础知识 - 类、接口及泛型
基类也称为“父类”或“超类”。继承类也称为“派生类”或“子类包含implements子句的类必须实现列出的接口中定义的所有方法,但使用默认实现定义的方法除外。
2024-11-05 23:29:53 732
原创 【鸿蒙开发】第二章 ArkTS基础知识 - 声明变量、常量、类型和函数
本章节我们来继续学习ArkTS的基础知识。其实官网上的ArkTS语言开发文档有比较详细的说明,所以这里在官方文档的基础上,结合本人的学习经验总结整理,简要的给大家分享一下ArkTS的基础知识供各位参考学习。ArkTS的基础类型和用法和ts的大致基本相同,与Java也极其相似。下面我们先来学习ArkTS的声明,ArkTS通过声明引入变量、常量、类型和函数。
2024-10-31 23:26:52 1234
原创 【鸿蒙开发】第一章 Stage应用模型及项目结构
前面章节我们学习了鸿蒙应用开发的路线,那么,本章节我们从最基本的应用模型及项目结构开始,先了解项目创建后应用模型对应的项目结构,文件对应的作用。目前华为官方主推的Stage应用模型,其对应的项目结构也是不同于FA应用模型下的项目结构。开始之前,我们先来了解一下什么是ArkUI。ArkUI即是方舟开发结构,它是HarmonyOS供给了一套UI开发结构,和Flutter与SwiftUI有着异曲同工的角色,你能够运用Flutter。
2024-10-30 23:43:05 978
原创 【HarmonyOS NEXT】鸿蒙解析JSON字符串 ArkTSUtils.ASON
为支持将JSON字符串解析成共享数据,ArkTS语言基础库新增了ASON工具。ASON支持开发者解析JSON字符串,并生成共享数据进行跨并发域传输,同时ASON也支持将共享数据转换成JSON字符串。
2024-09-02 09:21:53 341
原创 10. 多线程实现文件下载
三,request.agent.download (支持断点续传)二. request.download (不支持断点续传)通过worker模版创建一个worker子线程。两种方式实现多线程下载文件。一. worker 线程。Index.ets 代码。另外创建一个page。
2024-08-13 23:00:42 197
原创 6.鸿蒙-权限汇总
15.允许绑定屏保Ability CONNECT_SCREEN_SAVER_ABILITY。20.允许设备管理员读取设备信息 ENTERPRISE_GET_DEVICE_INFO。18.允许应用清理应用数据 CLEAN_APPLICATION_DATA。2.允许应用读取设备收到的小区广播信息 READ_CELL_MESSAGES。4.允许应用获取数据网络信息 GET_NETWORK_INFO。2.允许应用读取电话信息 GET_TELEPHONY_STATE。
2024-08-13 09:39:10 216
原创 5.鸿蒙-属性动画相关概念汇总
以示例中的五个图标动画为例,我们期望产生动画的属性为Image组件的width属性,故该属性width需在animation属性之前声明。3、产生属性动画的属性本身需满足一定的要求,并非任何属性都可以产生属性动画。在本示例中,产生动画的属性width,其值是通过变量iconWidth从30变为100,故该变量iconWidth的改变需触发UI状态更新。tempo number 1.0 动画的播放速度,值越大动画播放越快,值越小播放越慢,为0时无动画效果。
2024-08-13 09:37:06 426
原创 4.鸿蒙-如何发起一个http请求
第一个是请求的url地址,第二个是可选参数,类型为HttpRequestOptions,用于定义可选参数的类型和取值范围,包含请求方式、连接超时时间、请求头字段等。其中data.responseCode为http请求返回的状态码,如果状态码为http.ResponseCode.OK(即200),则表示请求成功,更多状态码可以在ResponseCode中查看。HTTP数据请求功能主要由http模块提供,包括发起请求、中断请求、订阅/取消订阅HTTP Response Header 事件等。
2024-08-13 09:30:20 463
原创 3.HarmonyOS Next Beta 部分语法讲解
18.布局元素的组成&内边距-padding。47.退出循环-break-continue。14.ArkUI-文本溢出省略号、行高。2.ArkTS-常量和变量的命名规则。48.遍历数组-for和for of。11.ArkUI-界面开发布局思路。43.分支-switch-多分支。1.ArkTS-认识和存储数据。4.ArkTS-函数的基本使用。5.ArkTS-函数的完整写法。12.ArkUI-组件属性方法。16.ArkUI-输入框和组件。28.线性布局-交叉轴对齐方式。27.线性布局-主轴对齐方式。
2024-07-08 09:52:13 282
原创 9.如何用系统库@ohos.security.cryptoFramework 实现RSA加密?
【环境】系统:HarmonyOS Next Beta ,SDK:API12。【问题】如何用系统库。
2024-07-05 15:26:15 219
原创 8.为什么老是提示THREAD_BLOCK_6S,但是不打印出到底是卡在那个函数??
崩溃原因是THREAD_BLOCK_6S ,这个怎么确定是A、B、C三个方法中哪个方法有问题呢?请选择当前版本进行验证_x000D_ /******/_x000D_ OH_AI_ContextSetThreadNum (OH_AI_ContextHandle context, int32_t thread_num) 使用此接口 参考开发设置。【问题】运行模拟器,总是提示 Reason:THREAD_BLOCK_6S,但是不告诉我到底是哪个函数卡死的,请问要怎么样才可以知道是卡在哪里?
2024-07-05 15:19:54 279
原创 2.基于@ohos/crypto-js实现加解密工具箱
调用CryptoJS.algo.DES.createDecryptor接口,配置密钥、模式、填充、偏移量创建DES解密算法对象,调用process方法传入分段密文WordArray对象生成分段明文WordArray对象,通过数组克隆与拼接操作生成完整明文,并转为utf8格式显示。调用CryptoJS.algo.SHA3.create接口并配置输出长度创建Hasher对象,通过update方法传入多段明文,通过finalize方法生成密文。调用CryptoJS.SHA3接口,传入明文与输出长度,生成密文。
2024-07-05 15:15:00 853
原创 7.API12 上如何用@ohos/crypto-js实现DES加解密
【环境】系统:HarmonyOS Next Beta 版本 , SDK:API 12, @ohos/crypto-js 版本为:2.0.4-rc.1。【问题】API12 上如何用@ohos/crypto-js实现DES加解密。
2024-07-05 15:11:57 306
原创 6.项目编译报错
Device Manager中之前下载了一款 Version 为HarmonyOS NEXT Developer Preview的模拟器,Version区域太小,没看出来。【配置】HarmonyOS Next Beta版本。【解决方法】查看模拟器的版本跟项目版本是否匹配。【问题】运行项目,编译器报错。看模拟器Version信息。
2024-07-04 00:00:36 145
原创 5、本地模拟器已启动,IDE检测不到设备
【问题】DevEco Studio 3.1.1 release 版本,本地模拟器已启动,大概率ide检测不到设备,重启ide和模拟器也不行,关闭adb再重启ide和模拟器还是检测不到。【解决问题】在Device Manager页面,在需要启动的模拟器右边选择下拉框,选第一个删掉用户数据,在启动,多试几次,模拟器经常连接不到。
2024-06-25 00:06:10 443
原创 4、Map数据如何转成JSON字符串?
【问题】DevEco Studio 3.1.1 release 版本,Map数据如何转成JSON字符串?//map类型的字符串转map。
2024-06-25 00:00:00 442
原创 3、Dev Eco studio 模拟器启动失败
"启用或关闭windows功能"勾选"hyper-v"、"windows虚拟机监控程序平台"、"虚拟机平台"
2024-06-24 23:56:56 621
原创 1、报错:ohpm:无法将“ohpm“项识别为 cmdlet、函数、脚本文件或可运行程序的名称
报错:ohpm:无法将“ohpm"项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确。export OHPM_HOME=/home/xx/Downloads/ohpm #本处路径请替换为ohpm的安装路径。添加完变量后重开命令行窗口,执行ohpm -v 查看ohpm版本号,终端输出版本号信息(如1.2.0)即为成功。】:以上原因是由于ohpm安装和环境配置有问题,需要安装ohpm 和 配置ohpm环境变量。打开终端工具,执行以下命令。
2024-06-24 23:46:13 989
原创 2、Dev Eco Studio打开预览工具报错
【问题】:之前预览工具还能正常预览自己写的代码页面,突然就莫名奇妙报错了。【解决方法】删除entry下的.preview文件,重新预览。
2024-06-24 23:41:33 687
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人