做網(wǎng)站制作公司百度搜索引擎盤搜搜
文章目錄
- 一、如何安裝 ohpm-cli
- 二、如何安裝三方庫
- 1、在 oh-package.json5 文件中聲明三方庫,以 @ohos/crypto-js 為例:
- 2、安裝指定名稱 pacakge_name 的三方庫,執(zhí)行以下命令,將自動在當前目錄下的 oh-package.json5 文件中自動添加三方庫依賴。
- 三、解決"Cannot find module" 錯誤
- 四、如何在項目中使用三方庫
- 五、使用示例詳細介紹
- 1、axios
- 2、crypto-js
一、如何安裝 ohpm-cli
ohpm 依賴于 node 運行時,支持 node.js 16.x 及以上版本,請?zhí)崆鞍惭b nodejs。
下載 ohpm 工具包,點擊鏈接獲取。
解壓文件,進入“ohpm/bin”目錄,打開命令行工具,執(zhí)行 init 命令,安裝 ohpm。
- 安裝完成之后,執(zhí)行如下命令:
ohpm -v
終端輸出為版本號(如:1.0.0),則表示安裝成功。
若您想在其他目錄使用 ohpm-cli,請將安裝 bin 目錄路徑配置到系統(tǒng)環(huán)境變量 path 中。
- 安裝三方庫
ohpm install <package_name>
- 測試三方庫是否正確安裝
為了確認 ohpm install 是否正常執(zhí)行,可檢查安裝目錄下 oh_modules 目錄是否存在,并且其中是否包含您所安裝三方庫的目錄。在安裝目錄下執(zhí)行以下命令可進行查看:
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 規(guī)范。
{"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"
}
依賴聲明之后,執(zhí)行以下命令,依賴三方庫會存儲在當前目錄的 oh_modules 目錄下。
ohpm install
2、安裝指定名稱 pacakge_name 的三方庫,執(zhí)行以下命令,將自動在當前目錄下的 oh-package.json5 文件中自動添加三方庫依賴。
ohpm install <pacakge_name>
三、解決"Cannot find module" 錯誤
如果沒有正確的安裝三方庫,而在代碼中進行使用,就會出現(xiàn) “Cannot find module” 錯誤,解決方法如下:
安裝該三方庫,執(zhí)行以下命令:
ohpm install <package_name>
四、如何在項目中使用三方庫
在您的項目中如需使用某個三方庫,請引入該三方庫,確保該三方庫存儲到 oh_module 目錄中。
import { CryptoJS } from '@ohos/crypto-js'var hash = CryptoJS.MD5("123456")
五、使用示例詳細介紹
1、axios
Axios ,是一個基于 promise 的網(wǎng)絡(luò)請求庫,可以運行 node.js 和瀏覽器中。本庫基于Axios 原庫v1.3.4版本進行適配,使其可以運行在 OpenHarmony,并沿用其現(xiàn)有用法和特性。
- 下載安裝
ohpm install @ohos/axios
- 需要權(quán)限
ohos.permission.INTERNET
- 創(chuàng)建一個實例
const instance = axios.create({baseURL: 'https://www.xxx.com/info',timeout: 1000,headers: {'X-Custom-Header': 'foobar'}
});
- 發(fā)送http請求
創(chuàng)建axios實例后,便可通過該實例的api來發(fā)送各種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可以分別為請求和響應配置攔截器,請求攔截器可在請求發(fā)送前進行攔截,響應攔截器可以在then()或者catch()方法執(zhí)行前進行攔截
在攔截器中,開發(fā)者可以對請求的參數(shù)或者響應的結(jié)果做一些統(tǒng)一的處理,比如在請求攔截器中統(tǒng)一為所有請求增加token這一Header,在響應攔截器中統(tǒng)一處理錯誤響應。
// 添加請求攔截器
axios.interceptors.request.use((config:InternalAxiosRequestConfig) => {// 對請求數(shù)據(jù)做點什么return config;
}, (error:AxiosError) => {// 對請求錯誤做些什么return Promise.reject(error);
});// 添加響應攔截器
axios.interceptors.response.use((response:AxiosResponse)=> {// 對響應數(shù)據(jù)做點什么return response;
}, (error:AxiosError)=> {// 對響應錯誤做點什么return Promise.reject(error);
});
- 獲取請求結(jié)果
api的返回值類型均為Promise,Promise是JavaScript中用于表示異步操作結(jié)果的對象,若操作成功,其中會包含具體結(jié)果,若操作失敗,其會包含錯誤的原因。在實際應用中,開發(fā)者可以通過該對象的then()方法來處理操作成功時的結(jié)果,通過catch()方法來處理操作失敗的情況
get(...).then((response:AxiosResponse)=>{//處理請求成功的結(jié)果...}).catch((error:AxiosError)=>{//處理請求失敗的錯誤...})
- 響應結(jié)構(gòu)
AxiosResponse是axios定義的響應結(jié)果類型,默認情況下,通過axios發(fā)送的所有請求,其成功的響應結(jié)果都是該類型。其包含的屬性如下
{// `data` 由服務器提供的響應data: {},// `status` 來自服務器響應的 HTTP 狀態(tài)碼status: 200,// `statusText` 來自服務器響應的 HTTP 狀態(tài)信息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") //傳參是需要加密的內(nèi)容,返回值是加密后的數(shù)據(jù)