鸿蒙HarmonyOS开发:如何使用第三方库,加速应用开发

文章目录

      • 一、如何安装 ohpm-cli
      • 二、如何安装三方库
        • 1、在 oh-package.json5 文件中声明三方库,以 @ohos/crypto-js 为例:
        • 2、安装指定名称 pacakge_name 的三方库,执行以下命令,将自动在当前目录下的 oh-package.json5 文件中自动添加三方库依赖。
      • 三、解决"Cannot find module" 错误
      • 四、如何在项目中使用三方库
      • 五、使用示例详细介绍
        • 1、axios
        • 2、crypto-js

一、如何安装 ohpm-cli

ohpm 依赖于 node 运行时,支持 node.js 16.x 及以上版本,请提前安装 nodejs。

下载 ohpm 工具包,点击链接获取。

解压文件,进入“ohpm/bin”目录,打开命令行工具,执行 init 命令,安装 ohpm。

  • 安装完成之后,执行如下命令:
ohpm -v

终端输出为版本号(如:1.0.0),则表示安装成功。

若您想在其他目录使用 ohpm-cli,请将安装 bin 目录路径配置到系统环境变量 path 中。

在这里插入图片描述

  • 安装三方库
ohpm install <package_name>
  • 测试三方库是否正确安装

为了确认 ohpm install 是否正常执行,可检查安装目录下 oh_modules 目录是否存在,并且其中是否包含您所安装三方库的目录。在安装目录下执行以下命令可进行查看:

ohpm ls <package_name>
  • 更新三方库
ohpm update <package_name>
  • 卸载直接依赖的三方库
ohpm uninstall <package_name>

二、如何安装三方库

OpenHarmony三方库中心仓:https://ohpm.openharmony.cn/

  • 安装的依赖文件
    entry/oh_modules

项目中只能引用 oh_modules 目录下的三方库,若您引用的三方库未安装在 oh_modules 目录下,请先下载安装三方库。

  • oh-package.json5 文件

须在 oh-package.json5 文件中 dependencies 字段中列出引用的三方库,其版本号遵循 semver 规范。

{"dependencies": {"fooLib": "file:./fooLib.har",  // 本地压缩包引用"foler": "file:../folder",  // 本地文件夹引用"remoteLib1": "1.0.0"  // 远程引用,固定版本"remoteLib2": "~3.2.1"  // 远程引用,保持主版本和次版本不变,patch 版本可更新到最新版本。即 3.2.1 ≤ version < 3.3.0"remoteLib3": "^3.1.0"  // 远程引用,保持主版本不变,次版本、patch 版本可更新到最新版本。即 3.1.0 ≤ version < 4.0.0}
}
1、在 oh-package.json5 文件中声明三方库,以 @ohos/crypto-js 为例:
"dependencies": {"@ohos/crypto-js": "2.0.1"
}

依赖声明之后,执行以下命令,依赖三方库会存储在当前目录的 oh_modules 目录下。

ohpm install
2、安装指定名称 pacakge_name 的三方库,执行以下命令,将自动在当前目录下的 oh-package.json5 文件中自动添加三方库依赖。
ohpm install <pacakge_name>

三、解决"Cannot find module" 错误

如果没有正确的安装三方库,而在代码中进行使用,就会出现 “Cannot find module” 错误,解决方法如下:

安装该三方库,执行以下命令:

ohpm install <package_name>

四、如何在项目中使用三方库

在您的项目中如需使用某个三方库,请引入该三方库,确保该三方库存储到 oh_module 目录中。

import { CryptoJS } from '@ohos/crypto-js'var hash = CryptoJS.MD5("123456")

五、使用示例详细介绍

1、axios

Axios ,是一个基于 promise 的网络请求库,可以运行 node.js 和浏览器中。本库基于Axios 原库v1.3.4版本进行适配,使其可以运行在 OpenHarmony,并沿用其现有用法和特性。

  • 下载安装
ohpm install @ohos/axios
  • 需要权限
ohos.permission.INTERNET
  • 创建一个实例
const instance = axios.create({baseURL: 'https://www.xxx.com/info',timeout: 1000,headers: {'X-Custom-Header': 'foobar'}
});
  • 发送http请求
    创建axios实例后,便可通过该实例的api来发送各种http请求,常用的api定义如下

在这里插入图片描述

  • 全局 axios 默认值
axios.defaults.baseURL = 'https://www.xxx.com';
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
  • 拦截器
    axios可以分别为请求和响应配置拦截器,请求拦截器可在请求发送前进行拦截,响应拦截器可以在then()或者catch()方法执行前进行拦截
    在这里插入图片描述
    在拦截器中,开发者可以对请求的参数或者响应的结果做一些统一的处理,比如在请求拦截器中统一为所有请求增加token这一Header,在响应拦截器中统一处理错误响应。
// 添加请求拦截器
axios.interceptors.request.use((config:InternalAxiosRequestConfig) => {// 对请求数据做点什么return config;
}, (error:AxiosError) => {// 对请求错误做些什么return Promise.reject(error);
});// 添加响应拦截器
axios.interceptors.response.use((response:AxiosResponse)=> {// 对响应数据做点什么return response;
}, (error:AxiosError)=> {// 对响应错误做点什么return Promise.reject(error);
});
  • 获取请求结果
    api的返回值类型均为Promise,Promise是JavaScript中用于表示异步操作结果的对象,若操作成功,其中会包含具体结果,若操作失败,其会包含错误的原因。在实际应用中,开发者可以通过该对象的then()方法来处理操作成功时的结果,通过catch()方法来处理操作失败的情况
get(...).then((response:AxiosResponse)=>{//处理请求成功的结果...}).catch((error:AxiosError)=>{//处理请求失败的错误...})
  • 响应结构
    AxiosResponse是axios定义的响应结果类型,默认情况下,通过axios发送的所有请求,其成功的响应结果都是该类型。其包含的属性如下
{// `data` 由服务器提供的响应data: {},// `status` 来自服务器响应的 HTTP 状态码status: 200,// `statusText` 来自服务器响应的 HTTP 状态信息statusText: 'OK',// `headers` 是服务器响应头// 所有的 header 名称都是小写,而且可以使用方括号语法访问// 例如: `response.headers['content-type']`headers: {},// `config` 是 `axios` 请求的配置信息config: {},// `request` 是生成此响应的请求request: {}// `performanceTiming` 计算HTTP请求的各个阶段所花费的时间performanceTiming: http.PerformanceTiming
}
  • 使用
import axios from '@ohos/axios'axios.get(url[, config])
.then(res)=>{
console.info("result:" + JSON.stringify(res.data));
}
2、crypto-js

本软件是移植开源软件 crypto-js 源码在OpenHarmony上进行功能适配,在OpenHarmony上已支持原库crypto-js的功能,目前crypto-js已支持的算法有:MD5、SHA-1、SHA-256、HMAC、HMAC-MD5、HMAC-SHA1、HMAC-SHA256、PBKDF2、AES、RC4、DES等。

  • 下载安装
ohpm  install @ohos/crypto-js
  • 使用说明
import { CryptoJS } from '@ohos/crypto-js'
  • 或者
import CryptoJS from '@ohos/crypto-js'
  • md5算法使用
const hash = CryptoJS.MD5("123456") //传参是需要加密的内容,返回值是加密后的数据

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

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

相关文章

打造敏捷开发环境:JNPF低代码平台的实践与探索

在数字化转型的浪潮中&#xff0c;企业对软件开发的敏捷性和效率提出了更高的要求。传统的软件开发模式通常耗时长、成本高昂&#xff0c;难以迅速适应市场变化。低代码平台的出现&#xff0c;为解决这一问题提供了新的视角。本文将探讨如何运用JNPF低代码平台构建敏捷开发环境…

Tailor:免费开源 AI 视频神器,创作者必备利器

目录 引言一、创新特性&#xff0c;引领视频编辑新潮流1. 智能人脸剪辑2. 精准语音剪辑3. 自动化口播生成4. 多样化字幕生成5. 一键式色彩生成 二、简单易用&#xff0c;新手也能快速上手1. 下载和安装2. 功能选择3. 操作流程 三、广泛应用&#xff0c;满足不同创作需求四、代码…

《机器学习》—— AUC评估指标

文章目录 一、什么是AUC&#xff1f;1、什么是ROC曲线&#xff1f;2、ROC曲线的绘制 二、如何计算AUC的值三、代码实现AUC值的计算四、AUC的优缺点 一、什么是AUC&#xff1f; 机器学习中的AUC&#xff08;Area Under the Curve&#xff09;是一个重要的评估指标&#xff0c;特…

HarmonyOS--认证服务-操作步骤

HarmonyOS–认证服务 文章目录 一、注册华为账号开通认证服务二、添加项目&#xff1a;*包名要与项目的包名保持一致三、获取需要的文件四、创建项目&#xff1a;*包名要与项目的包名保持一致五、添加json文件六、加入请求权限七、加入依赖八、修改构建配置文件&#xff1a;bui…

软硬链接

建立软连接 ln -s 指向的文件 软连接文件 建立硬连接 ln 原来文件 硬连接文件 上面我们发现&#xff0c;建立的软链接文件的inode编号和指向文件不同&#xff0c;而建立的硬链接文件inode编号没变&#xff0c;为什么呢&#xff1f; 为什么不能给目录创建硬链接&#xff1f…

解决添加MPJ插件启动报错

在项目中需要用到多数据源的级联查询&#xff0c;所以引入了MPJ插件&#xff0c;MPJ的版本是1.2.4&#xff0c;MP的版本是3.5.3&#xff0c;但却在启动的时候报错&#xff0c;报错如下&#xff1a; 解决办法&#xff1a; 将MP的版本降到3.5.1

UnrealEngine学习(02):虚幻引擎编辑器界面详解

学习一款软件&#xff0c;我个人建议是先学习怎么用&#xff0c;然后是学习怎么用的好&#xff0c;再研究源码。 上一篇文章详细描述了我们该如何安装虚幻5引擎&#xff1a; UnrealEngine学习(01)&#xff1a;安装虚幻引擎https://blog.csdn.net/zuodingquan666/article/deta…

【学术英语】Unit3:Academic Writing(学术写作)

文章目录 一、摘要1.1 摘要简介1.2 摘要的两种类型1.3 写摘要的技巧1.4 摘要的关键词1.5 例子1.5.1 例子11.5.2 例子2 二、注释和致谢2.1 注释的格式2.1.1 Book2.1.2 论文2.1.3 例子 2.2 致谢的格式 三、书目选编 一、摘要 1.1 摘要简介 摘要对学术写作极其重要和有用&#x…

小白之 FastGPT Windows 本地化部署

目录 引言环境步骤1. 安装 docker2. 启动 docker3. 浏览器访问4. One API 配置语言模型、向量模型渠道和令牌5. 创建 FastGPT 知识库6. 创建 FastGPT 应用 官方文档 引言 部署之前可以先看一下 RAG 技术原理&#xff0c;也可以后面回过头来看&#xff0c;对一些概念有些了解&a…

Latex插入eps图片不显示报错not found解决方案

Latex插入eps图片不显示并报错&#xff1a; 解决方案&#xff1a; 首先确保.tex文件中添加包\usepackage{epstopdf} winR输入cmd进入系统命令行 进入.tex文件系统盘&#xff0c;代码&#xff1a;D: 进入.tex所在文件夹&#xff0c;代码&#xff1a;cd D:\Desktop\xxx 执行最重要…

Physics of Language Models学习小结

1.概述 Physics of Language Models 参考&#xff1a;https://zhuanlan.zhihu.com/p/711391378 这是一系列论文和一个新的LLM研究方向&#xff0c;官网的概述如下。 苹果掉落&#xff0c;盒子移动&#xff0c;但重力和惯性等普遍规律对技术进步至关重要。虽然GPT-5或LLaMA-…

保号套餐千万别随便办理,小心有坑!

现在网上到处都是讨论保号套餐的消息&#xff0c;保号套餐虽好&#xff0c;但是小编提醒大家千万别随便办理&#xff0c;小心有坑&#xff01; 为什么这么说呢&#xff0c;我们先来看一张图&#xff1a; 移动的保号套餐&#xff0c;月租8元&#xff0c;分成两个套餐&#xff0…

算法笔试-编程练习-H-02-24

w这套题&#xff0c;侧重模拟和题目理解&#xff0c;只要按照题目描述正常复现整体分数应该不错 一、数据重删 数据重删是一种节约存储空间的技术&#xff0c;通常情况下&#xff0c;在数据存储池内是有很多重复的数据库。重删则是将这些重复的数据块找出并处理的技术。简单地…

黑神话怎么玩?隐藏BOSS寅虎打法攻略

这期来教大家黑神话悟空寅虎BOSS怎么打&#xff0c;寅虎是游戏中比较强力的一只boss&#xff0c;很多玩家拼尽全力都还是惜败一招&#xff0c;其实想要打赢它需要采用特定的方法和技巧才能攻克&#xff0c;因此接下来小编会给大家介绍下它的打法&#xff0c;还没攻克这个boss的…

P2P 文件共享:现代网络中的高效文件传输

在互联网的世界中&#xff0c;不同应用程序的数据传输方法各异。P2P文件共享&#xff08;Peer-to-Peer File Sharing&#xff09; 作为一种高效的文件传输方式&#xff0c;使得用户可以在没有中央服务器的情况下直接进行文件交换。本文将详细介绍P2P文件共享的基本原理、优势及…

游戏开发设计模式之装饰模式

目录 装饰模式在游戏开发中的具体应用案例是什么&#xff1f; 如何在Unity中实现装饰模式以动态扩展游戏对象的功能&#xff1f; 装饰模式与其他设计模式&#xff08;如适配器模式、代理模式&#xff09;相比&#xff0c;有哪些优势和劣势&#xff1f; 优势 劣势 与适配器…

如何满足业主多元需求?开发物业APP,打造智能社区生活

随着智能科技的快速发展&#xff0c;物业管理也逐渐迈入数字化时代。物业app开发成为了提升社区管理效率、改善居民生活质量的重要途径&#xff0c;许多物业管理公司纷纷开发物业App&#xff0c;以提升管理效率、改善用户体验。一款出色的物业APP能够整合居民需求、提升企业服务…

three.js 实现 3D地图

three.js 实现仿照 echarts 3d 地图 。 由于 three.js 目前比较依赖写代码&#xff0c;而一个美的地图需要大量的three.js 组合&#xff0c;我建议 先做three.js 基础层的 低代码编辑器&#xff0c;随后各种项目和效果配置起来都会很方便。 https://z2586300277.github.io/th…

FastGPT如何增减用户

背景 开源版本的FastGPT默认只有一个超级用户root&#xff0c;为了更好地管理应用和知识库&#xff0c;可以通过操作MongoDB数据库来增加新的用户和团队。 所需环境 已安装并运行的FastGPT实例MongoDB客户端工具&#xff08;如Mongo Shell或Robo 3T等&#xff09; 操作步骤…

tomcat初步学习

tomcat部署 三太主机 安装 java 环境。两台tomcat-node都安装 安装并启动 tomcat 将之简便处理下放在别的目录并启动 测试 生成 tomcat 的主配置文件 生成启动文件 编辑文件 给与权限后启动 tomcat的反向代理和负载均衡 建立对应文件将之移到目录下 配置后测试 进入文件 写…