(本篇笔记对应课程第 29 节)
P29《28.网络连接-第三方库axios》
![](https://img-blog.csdnimg.cn/direct/e168c5d5dcf34df8b9681cd8cfcff24a.png)
要想使用第三方库axios,需要先安装ohpm,因为 axios 是第三方库,不是鸿蒙官方提供的,所以需要先安装 ohpm,它是 Harmony Packages Manager 的简写,是鸿蒙的包管理工具。
第一步:下载和安装 ohpm:
点击 "点击链接获取",跳转到如下页面,下载相应版本:
![](https://img-blog.csdnimg.cn/direct/e623a0a96a65429e8319995a90fd027d.png)
下载完成后将 该压缩包文件放到习惯使用的目录下并解压:
![](https://img-blog.csdnimg.cn/direct/faf84f6ff25343a0bd0c5bca07fa019a.png)
进入 ohpm/bin 目录,并在此目录下打开命令行窗口:
![](https://img-blog.csdnimg.cn/direct/dc0f7e0f440e4ef588a54b3578b13414.png)
在命令行窗口中执行初始化:init.bat
![](https://img-blog.csdnimg.cn/direct/9eeda1e4a88a4e88966110c13801da2f.png)
但此时仅实现了在bin目录下命令行有效,在其它目录下无效:
![](https://img-blog.csdnimg.cn/direct/ea5b8843c4f34a368042f07393aab224.png)
如果想让其在所有目录下都生效,需要将该目录配置到环境变量中:
win10配置环境变量如下:右键"我的电脑",点击"属性",找到"高级系统设置":
![](https://img-blog.csdnimg.cn/direct/e53b75dd4ca14381ac75f2db1463eb4f.png)
![](https://img-blog.csdnimg.cn/direct/3c0e91919ffd4f34bf7758d62e56a386.png)
![](https://img-blog.csdnimg.cn/direct/4113b7ad209046daba4707915460afa8.png)
在 path 中配置环境变量:
![](https://img-blog.csdnimg.cn/direct/a70dfb1ac8b34b38b0007a3f6f5a7319.png)
配置完成后在任一目录下打开命令行窗口,都可以正常使用 ohpm 命令行了。
第二步:下载和安装 axios
![](https://img-blog.csdnimg.cn/direct/5aab4afb543f473fb76a97361e5e5aee.png)
如果用到其它第三方库,使用方法可以查看鸿蒙三方库中心仓:ohpm.openharmony.cn/#/cn/home
项目目录下有一个文件:oh-package.json5 ,这个文件即类似于项目依赖管理的文件:
![](https://img-blog.csdnimg.cn/direct/99cab75211e3424a9f58644ddc3e2345.png)
在根目录下执行安装命令,安装完成后会发现依赖文件中显示出了 axios 的依赖;同时在 oh_modules(项目的第三方库和其他依赖) 下也能看到 axios 依赖:
![](https://img-blog.csdnimg.cn/direct/84b33e07e0564603ac9525e45e65b694.png)
![](https://img-blog.csdnimg.cn/direct/138456e4ea08454fae8b01cd36dff49f.png)
axios() 第二个配置项中,params 代表使用get方法传递的参数,与拼接在url之后效果相同;data代表使用get方法以外的方法时需要传递的参数。
![](https://img-blog.csdnimg.cn/direct/657fa24f9b3a4c8aace0a31629eebe96.png)
![](https://img-blog.csdnimg.cn/direct/d2027107eb884809920bd3e221e5ba7e.png)
实践:
实践中遇到的问题:
![](https://img-blog.csdnimg.cn/direct/c171816e3fc94251b58ab3156d128ace.png)
从该篇笔记中找到原因与解决方案:
go------error记录
![](https://img-blog.csdnimg.cn/direct/cffaf1697dbe48be850a2f237d0401e4.png)
![](https://img-blog.csdnimg.cn/direct/929502a17a4a423785638e4cc9c5f1d0.png)
P30《29.数据持久化-用户首选项》
实现数据持久化在harmonyOS中有很多种方式,比较常见的是以下两种:
![](https://img-blog.csdnimg.cn/direct/4d669dc878c94ed29260b6e24277b5ba.png)
![](https://img-blog.csdnimg.cn/direct/b35945e223cb47408ef1e99f3d42e0e5.png)
读取项目持久化文件,这是一个IO操作,比较耗时,因此是一个异步操作,返回一个Promise对象:
![](https://img-blog.csdnimg.cn/direct/1a057e62a2904f8b838f1892698dd9e7.png)
将 routerInfo 类定义到 viewmodel 目录下的一个文件中:
![](https://img-blog.csdnimg.cn/direct/19a0526c406f4fffb71a06d9b903fda0.png)
![](https://img-blog.csdnimg.cn/direct/7836af9cc0ec482b82b932250d6b5652.png)
改造首页,增加一个设置字体大小的功能:
![](https://img-blog.csdnimg.cn/direct/104e32a4105e48caa053c16f945029ec.png)
![](https://img-blog.csdnimg.cn/direct/0c81765923d3497193295b1d2014dfe0.png)
![](https://img-blog.csdnimg.cn/direct/40ebef34b90b468982640ee10eecbda4.png)
实现用户持久化:
1、在 util 目录下定义一个 PreferenceUtil.ts 的首选项工具类文件:
![](https://img-blog.csdnimg.cn/direct/2654034c40f646adba960f4098b780da.png)
2、定义加载 Preference 方法:
异步写法:
![](https://img-blog.csdnimg.cn/direct/c66f65cf156440a3879b4006858c44c1.png)
同步写法:
![](https://img-blog.csdnimg.cn/direct/35e46600076e4879a627b982ded092e2.png)
语句后输入 .if 可快速将前面的语句包裹在 if() 中:
![](https://img-blog.csdnimg.cn/direct/aaa971c2537d49e5820e976e968fc7f9.png)
3、定义写入 Preference 方法:
![](https://img-blog.csdnimg.cn/direct/3800384f85e946fabfe9170a18cf2a76.png)
4、定义读取 Preference 方法:
![](https://img-blog.csdnimg.cn/direct/7d0933e821a1478283d3e9a898c882a3.png)
5、在 Ability 的 onCreate 钩子函数中加载 Preference:
![](https://img-blog.csdnimg.cn/direct/1ce2e72587e045f793f2ee0ff1866815.png)
6、在首页中使用 获取 Preference 方法:
7、字号改变时写入 Preference :
![](https://img-blog.csdnimg.cn/direct/c362b5ff299441708f02c6488b7556b6.png)
测试:
测试 Preference 必须用模拟器
启动模拟器:
![](https://img-blog.csdnimg.cn/direct/5ac957251035457bb87bb27509840a8c.png)
点击 返回 按钮,应用关闭,Ability被销毁:
![](https://img-blog.csdnimg.cn/direct/864e4af393c74ea2ad97faaebbb8b99d.png)
再次打开应用,发现数据持久化效果成功了!
![](https://img-blog.csdnimg.cn/direct/6f41fed2f1f044fc9c7df9ab5f889404.png)
实践:
![](https://img-blog.csdnimg.cn/direct/0d2ddb021a0447de873b4f20efcf5465.png)