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

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十九)

课程地址: 黑马程序员HarmonyOS4+NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发

(本篇笔记对应课程第 29 节)

P29《28.网络连接-第三方库axios》

在这里插入图片描述

要想使用第三方库axios,需要先安装ohpm,因为 axios 是第三方库,不是鸿蒙官方提供的,所以需要先安装 ohpm,它是 Harmony Packages Manager 的简写,是鸿蒙的包管理工具。

第一步:下载和安装 ohpm:

在这里插入图片描述
在这里插入图片描述

点击 “点击链接获取”,跳转到如下页面,下载相应版本:

在这里插入图片描述

下载完成后将 该压缩包文件放到习惯使用的目录下并解压:

在这里插入图片描述

进入 ohpm/bin 目录,并在此目录下打开命令行窗口:

在这里插入图片描述

在命令行窗口中执行初始化:init.bat

在这里插入图片描述

但此时仅实现了在bin目录下命令行有效,在其它目录下无效:

在这里插入图片描述

如果想让其在所有目录下都生效,需要将该目录配置到环境变量中:

win10配置环境变量如下:右键“我的电脑”,点击“属性”,找到“高级系统设置”:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在 path 中配置环境变量:

在这里插入图片描述

配置完成后在任一目录下打开命令行窗口,都可以正常使用 ohpm 命令行了。

第二步:下载和安装 axios

在这里插入图片描述

如果用到其它第三方库,使用方法可以查看鸿蒙三方库中心仓:ohpm.openharmony.cn/#/cn/home

在这里插入图片描述
在这里插入图片描述

项目目录下有一个文件:oh-package.json5 ,这个文件即类似于项目依赖管理的文件:

在这里插入图片描述

在根目录下执行安装命令,安装完成后会发现依赖文件中显示出了 axios 的依赖;同时在 oh_modules(项目的第三方库和其他依赖) 下也能看到 axios 依赖:

在这里插入图片描述

在这里插入图片描述

axios() 第二个配置项中,params 代表使用get方法传递的参数,与拼接在url之后效果相同;data代表使用get方法以外的方法时需要传递的参数。

在这里插入图片描述

在这里插入图片描述

实践:

实践中遇到的问题:

在这里插入图片描述

从该篇笔记中找到原因与解决方案:
go——error记录

在这里插入图片描述

在这里插入图片描述

P30《29.数据持久化-用户首选项》

实现数据持久化在harmonyOS中有很多种方式,比较常见的是以下两种:

在这里插入图片描述

在这里插入图片描述

读取项目持久化文件,这是一个IO操作,比较耗时,因此是一个异步操作,返回一个Promise对象:

在这里插入图片描述

将 routerInfo 类定义到 viewmodel 目录下的一个文件中:

在这里插入图片描述

在这里插入图片描述

改造首页,增加一个设置字体大小的功能:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实现用户持久化:

1、在 util 目录下定义一个 PreferenceUtil.ts 的首选项工具类文件:

在这里插入图片描述

2、定义加载 Preference 方法:

异步写法:

在这里插入图片描述

同步写法:

在这里插入图片描述

语句后输入 .if 可快速将前面的语句包裹在 if() 中:

在这里插入图片描述

3、定义写入 Preference 方法:

在这里插入图片描述

4、定义读取 Preference 方法:

在这里插入图片描述

5、在 Ability 的 onCreate 钩子函数中加载 Preference:

在这里插入图片描述

6、在首页中使用 获取 Preference 方法:

在这里插入图片描述
在这里插入图片描述

7、字号改变时写入 Preference :

在这里插入图片描述

测试:

测试 Preference 必须用模拟器

启动模拟器:

在这里插入图片描述

点击 返回 按钮,应用关闭,Ability被销毁:

在这里插入图片描述

再次打开应用,发现数据持久化效果成功了!

在这里插入图片描述

实践:

DevEco Studio 常用快捷键

在这里插入图片描述

相关文章:

  • LeetCode:经典题之144、94、145、102题解及延伸|二叉树的遍历|前中后层序遍历|Morris算法
  • Rust学习笔记 (命令行命令) : 用override set 设置工具链
  • OpenCV cv::Mat到 Eigen 的正确转换——cv2eigen
  • Vue3轻松创建交互式仪表盘
  • miniconda3 安装jupyter notebook并配置网络访问
  • 番外1:企业数据
  • 【文档+源码+调试讲解】科研经费管理系统
  • WebKit简介及工作流程
  • 是什么让以太坊从众多公链中脱颖而出
  • CesiumJS【Basic】- #054 绘制渐变填充多边形(Entity方式)-使用shader
  • ONLYOFFICE8.1版本桌面编辑器简单测评
  • 【滑动窗口】个人练习-Leetcode-992. Subarrays with K Different Integers
  • 解决前端登录成功之后,往后端发请求携带cookie问题
  • DB-GPT 文档切分报错
  • 猫头虎分享[可灵AI」官方推荐的驯服指南-V1.0
  • 【node学习】协程
  • avalon2.2的VM生成过程
  • go语言学习初探(一)
  • JavaScript设计模式系列一:工厂模式
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Just for fun——迅速写完快速排序
  • SegmentFault 2015 Top Rank
  • SQLServer之创建显式事务
  • 分布式事物理论与实践
  • 服务器之间,相同帐号,实现免密钥登录
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 使用SAX解析XML
  • 运行时添加log4j2的appender
  • nb
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #include
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (007)XHTML文档之标题——h1~h6
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (十六)Flask之蓝图
  • (四)模仿学习-完成后台管理页面查询
  • (万字长文)Spring的核心知识尽揽其中
  • (转)ABI是什么
  • (转)项目管理杂谈-我所期望的新人
  • .apk文件,IIS不支持下载解决
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .net 按比例显示图片的缩略图
  • .NET实现之(自动更新)
  • @ConditionalOnProperty注解使用说明
  • @FeignClient注解,fallback和fallbackFactory
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • @PostConstruct 注解的方法用于资源的初始化
  • @Transactional 详解
  • [ANT] 项目中应用ANT
  • [Bada开发]初步入口函数介绍
  • [CAN] 创建解析CAN报文DBC文件教程
  • [CCF-CSP] 202303-4 星际网络II
  • [Everyday Mathematics]20150130