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

打印 上一主题 下一主题

主题 1018|帖子 1018|积分 3054

一、如何安装 ohpm-cli

ohpm 依赖于 node 运行时,支持 node.js 16.x 及以上版本,请提前安装 nodejs。
下载 ohpm 工具包,点击链接获取。
解压文件,进入“ohpm/bin”目次,打开命令行工具,实行 init 命令,安装 ohpm。


  • 安装完成之后,实行如下命令:
  1. ohpm -v
复制代码
终端输出为版本号(如:1.0.0),则表示安装成功。
若您想在其他目次利用 ohpm-cli,请将安装 bin 目次路径配置到系统环境变量 path 中。



  • 安装三方库
  1. ohpm install
  2. <package_name>
复制代码


  • 测试三方库是否正确安装
为了确认 ohpm install
是否正常实行,可检查安装目次下 oh_modules 目次是否存在,并且此中是否包罗您所安装三方库的目次。在安装目次下实行以下命令可进行检察:
  1. ohpm ls <package_name>
复制代码


  • 更新三方库
  1. ohpm update <package_name>
复制代码


  • 卸载直接依赖的三方库
  1. ohpm uninstall <package_name>
复制代码
二、如何安装三方库

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


  • 安装的依赖文件
    entry/oh_modules
项目中只能引用 oh_modules 目次下的三方库,若您引用的三方库未安装在 oh_modules 目次下,请先下载安装三方库。


  • oh-package.json5 文件
须在 oh-package.json5 文件中 dependencies 字段中列出引用的三方库,其版本号遵循 semver 规范。
  1. {
  2.   "dependencies": {
  3.     "fooLib": "file:./fooLib.har",  // 本地压缩包引用
  4.     "foler": "file:../folder",  // 本地文件夹引用
  5.     "remoteLib1": "1.0.0"  // 远程引用,固定版本
  6.     "remoteLib2": "~3.2.1"  // 远程引用,保持主版本和次版本不变,patch 版本可更新到最新版本。即 3.2.1 ≤ version < 3.3.0
  7.     "remoteLib3": "^3.1.0"  // 远程引用,保持主版本不变,次版本、patch 版本可更新到最新版本。即 3.1.0 ≤ version < 4.0.0
  8.   }
  9. }
复制代码
1、在 oh-package.json5 文件中声明三方库,以 @ohos/crypto-js 为例:

  1. "dependencies": {
  2.    "@ohos/crypto-js": "2.0.1"
  3. }
复制代码
依赖声明之后,实行以下命令,依赖三方库会存储在当前目次的 oh_modules 目次下。
  1. ohpm install
复制代码
2、安装指定名称 pacakge_name 的三方库,实行以下命令,将自动在当前目次下的 oh-package.json5 文件中自动添加三方库依赖。

  1. ohpm install
  2. <pacakge_name>
复制代码
三、办理"Cannot find module" 错误

如果没有正确的安装三方库,而在代码中进行利用,就会出现 “Cannot find module” 错误,办理方法如下:
安装该三方库,实行以下命令:
  1. ohpm install
  2. <package_name>
复制代码
四、如何在项目中利用三方库

在您的项目中如需利用某个三方库,请引入该三方库,确保该三方库存储到 oh_module 目次中。
  1. import { CryptoJS } from '@ohos/crypto-js'
  2. var hash = CryptoJS.MD5("123456")
复制代码
五、利用示例详细介绍

1、axios

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


  • 下载安装
  1. ohpm install
  2. @ohos/axios
复制代码


  • 需要权限
  1. ohos.permission.INTERNET
复制代码


  • 创建一个实例
  1. const instance = axios.create({
  2.   baseURL: 'https://www.xxx.com/info',
  3.   timeout: 1000,
  4.   headers: {'X-Custom-Header': 'foobar'}
  5. });
复制代码


  • 发送http请求
    创建axios实例后,便可通过该实例的api来发送各种http请求,常用的api界说如下



  • 全局 axios 默认值
  1. axios.defaults.baseURL = 'https://www.xxx.com';
  2. axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
  3. axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
复制代码


  • 拦截器
    axios可以分别为请求和响应配置拦截器,请求拦截器可在请求发送前进行拦截,响应拦截器可以在then()或者catch()方法实行前进行拦截

    在拦截器中,开发者可以对请求的参数或者响应的结果做一些同一的处置惩罚,比如在请求拦截器中同一为所有请求增长token这一Header,在响应拦截器中同一处置惩罚错误响应。
  1. // 添加请求拦截器
  2. axios.interceptors.request.use((config:InternalAxiosRequestConfig) => {
  3.   // 对请求数据做点什么
  4.   return config;
  5. }, (error:AxiosError) => {
  6.   // 对请求错误做些什么
  7.   return Promise.reject(error);
  8. });
  9. // 添加响应拦截器
  10. axios.interceptors.response.use((response:AxiosResponse)=> {
  11.   // 对响应数据做点什么
  12.   return response;
  13. }, (error:AxiosError)=> {
  14.   // 对响应错误做点什么
  15.   return Promise.reject(error);
  16. });
复制代码


  • 获取请求结果
    api的返回值类型均为Promise,Promise是JavaScript中用于表示异步操作结果的对象,若操作成功,此中会包罗具体结果,若操作失败,其会包罗错误的缘故原由。在现实应用中,开发者可以通过该对象的then()方法来处置惩罚操作成功时的结果,通过catch()方法来处置惩罚操作失败的环境
  1. get(...)
  2.   .then((response:AxiosResponse)=>{
  3.     //处理请求成功的结果
  4.     ...
  5.   })
  6.   .catch((error:AxiosError)=>{
  7.     //处理请求失败的错误
  8.     ...
  9.   })
复制代码


  • 响应结构
    AxiosResponse是axios界说的响应结果类型,默认环境下,通过axios发送的所有请求,其成功的响应结果都是该类型。其包罗的属性如下
  1. {
  2.   // `data` 由服务器提供的响应
  3.   data: {},
  4.   // `status` 来自服务器响应的 HTTP 状态码
  5.   status: 200,
  6.   // `statusText` 来自服务器响应的 HTTP 状态信息
  7.   statusText: 'OK',
  8.   // `headers` 是服务器响应头
  9.   // 所有的 header 名称都是小写,而且可以使用方括号语法访问
  10.   // 例如: `response.headers['content-type']`
  11.   headers: {},
  12.   // `config` 是 `axios` 请求的配置信息
  13.   config: {},
  14.   
  15.   // `request` 是生成此响应的请求
  16.   request: {}
  17.   // `performanceTiming` 计算HTTP请求的各个阶段所花费的时间
  18.   performanceTiming: http.PerformanceTiming
  19. }
复制代码


  • 利用
  1. import axios from '@ohos/axios'
  2. axios.get(url[, config])
  3. .then(res)=>{
  4. console.info("result:" + JSON.stringify(res.data));
  5. }
复制代码
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等。


  • 下载安装
  1. ohpm  install @ohos/crypto-js
复制代码


  • 利用说明
  1. import { CryptoJS } from '@ohos/crypto-js'
复制代码


  • 或者
  1. import CryptoJS from '@ohos/crypto-js'
复制代码


  • md5算法利用
  1. const hash = CryptoJS.MD5("123456") //传参是需要加密的内容,返回值是加密后的数据
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表