一、如何安装 ohpm-cli
ohpm 依赖于 node 运行时,支持 node.js 16.x 及以上版本,请提前安装 nodejs。
下载 ohpm 工具包,点击链接获取。
解压文件,进入“ohpm/bin”目次,打开命令行工具,实行 init 命令,安装 ohpm。
终端输出为版本号(如:1.0.0),则表示安装成功。
若您想在其他目次利用 ohpm-cli,请将安装 bin 目次路径配置到系统环境变量 path 中。
- ohpm install
- <package_name>
复制代码
为了确认 ohpm install
是否正常实行,可检查安装目次下 oh_modules 目次是否存在,并且此中是否包罗您所安装三方库的目次。在安装目次下实行以下命令可进行检察:
- ohpm update <package_name>
复制代码
- ohpm uninstall <package_name>
复制代码 二、如何安装三方库
OpenHarmony三方库中央仓:https://ohpm.openharmony.cn/
项目中只能引用 oh_modules 目次下的三方库,若您引用的三方库未安装在 oh_modules 目次下,请先下载安装三方库。
须在 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 目次下。
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,并相沿其现有用法和特性。
- const instance = axios.create({
- baseURL: 'https://www.xxx.com/info',
- timeout: 1000,
- headers: {'X-Custom-Header': 'foobar'}
- });
复制代码
- 发送http请求
创建axios实例后,便可通过该实例的api来发送各种http请求,常用的api界说如下
- 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'
复制代码
- const hash = CryptoJS.MD5("123456") //传参是需要加密的内容,返回值是加密后的数据
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |