{"_id":"@cordova-ohos/cordova-plugin-networkinterface","_rev":"3-cd3aaa0180c0e3964dfd7f9e4beb015c","name":"@cordova-ohos/cordova-plugin-networkinterface","dist-tags":{"latest":"2.2.1"},"versions":{"2.2.0":{"name":"@cordova-ohos/cordova-plugin-networkinterface","version":"2.2.0","keywords":["cordova","networkinterface","ecosystem:cordova","cordova-openharmony"],"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/cordova-plugin-networkinterface@2.2.0","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"},{"name":"wanpengsz","email":"wanpengsz@163.com"},{"name":"xkh111","email":"xukaihui11@163.com"}],"bugs":{"url":"https://gitcode.com/OpenHarmony-Cordova/cordova-plugin-networkinterface/issues"},"dist":{"shasum":"c5aac7c8023f993f97fac6892adfbbe2ec1f5173","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-networkinterface/-/cordova-plugin-networkinterface-2.2.0.tgz","fileCount":9,"integrity":"sha512-pY0vZHYRUVOh8SUBRNzHfwWyEK3VMktBOmJFxeYRsWf+KE2YYiMH5wLALirlmi+eB96/PRzfcg7EDBLXJFI9/Q==","signatures":[{"sig":"MEUCIQDW0VKiUKviuT/j0Z3mH/7KOf5hpTdLS7JK2kujdZLNPQIgK4YzpfmmLqtwm2rGAvh57ROfEo/xtrlaDVijv7ULub0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35981},"cordova":{"id":"cordova-plugin-networkinterface","platforms":["ohos"]},"engines":{"cordovaDependencies":{"2.2.0":{"hcordova":">=1.0.0","@cordova-ohos/ohos":">=2.0.0"}}},"gitHead":"b0098e07d8cd267a57a63046fc9fb9f215076f7e","_npmUser":{"name":"wanpengsz","email":"wanpengsz@163.com"},"repository":{"url":"gitcode:OpenHarmony-Cordova/cordova-plugin-networkinterface","type":"git"},"_npmVersion":"9.6.2","description":"Cordova Networkinterface Plugin","directories":{},"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cordova-plugin-networkinterface_2.2.0_1773997332260_0.6920578694743491","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@cordova-ohos/cordova-plugin-networkinterface","version":"2.2.1","description":"Cordova Networkinterface Plugin","cordova":{"id":"cordova-plugin-networkinterface","platforms":["ohos"]},"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-networkinterface"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-networkinterface/issues"},"keywords":["cordova","networkinterface","ecosystem:cordova","cordova-openharmony"],"engines":{"cordovaDependencies":{"2.2.1":{"@cordova-ohos/ohos":">=2.0.0","hcordova":">=1.0.0"}}},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/cordova-plugin-networkinterface@2.2.1","gitHead":"5b0bf48282fe229691c842796f5fe83e528e19fa","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-/leUmD2G4k8m7Fx1ckKuHrCJPI/tFpuV7X/lnDltsLzFNGswA443cOg3BBRpqafKjFrxoBNWW/2mAJiOtx+4wg==","shasum":"87859b23d0f15f99bf70d07845bf060ed9c019ce","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-networkinterface/-/cordova-plugin-networkinterface-2.2.1.tgz","fileCount":10,"unpackedSize":62569,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDcW/i3mCKYz76pn/0VMI4ltwaaAD8VIl6Vck+SIr751QIhAM/plQgcQ8wsIn4617VD1ggJu+N3T/m9C71k29uAtq9p"}]},"_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"directories":{},"maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"},{"name":"wanpengsz","email":"wanpengsz@163.com"},{"name":"xkh111","email":"xukaihui11@163.com"},{"name":"hcordova","email":"chenlihuiabc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cordova-plugin-networkinterface_2.2.1_1785161367121_0.8981823687223496"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-20T09:02:12.152Z","modified":"2026-07-27T14:09:27.481Z","2.2.0":"2026-03-20T09:02:12.408Z","2.2.1":"2026-07-27T14:09:27.279Z"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-networkinterface/issues"},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","keywords":["cordova","networkinterface","ecosystem:cordova","cordova-openharmony"],"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-networkinterface"},"description":"Cordova Networkinterface Plugin","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"},{"name":"wanpengsz","email":"wanpengsz@163.com"},{"name":"xkh111","email":"xukaihui11@163.com"},{"name":"hcordova","email":"chenlihuiabc@163.com"}],"readme":"# <center>cordova-plugin-networkinterface</center>\r\n\r\n[![zh-CN](https://img.shields.io/badge/lang-中文-blue.svg)](README.md)\r\n[![en](https://img.shields.io/badge/lang-English-blue.svg)](README.en.md)\r\n\r\n本项目基于 [cordova-plugin-networkinterface@2.2.0](https://www.npmjs.com/package/cordova-plugin-networkinterface/v/2.2.0) 开发，本文档重点阐述其在 OpenHarmony（OHOS）系统中的具体应用。\r\n\r\n- [cordova-plugin-networkinterface](#cordova-plugin-networkinterface)\r\n  - [简介](#简介)\r\n  - [功能特性](#功能特性)\r\n  - [支持平台](#支持平台)\r\n  - [下载安装](#下载安装)\r\n    - [前提条件](#前提条件)\r\n    - [从 npm 安装（推荐）](#从-npm-安装推荐)\r\n    - [从 GitCode 仓库安装](#从-gitcode-仓库安装)\r\n    - [离线安装（本地包）](#离线安装本地包)\r\n    - [安装后验证](#安装后验证)\r\n    - [卸载](#卸载)\r\n  - [约束与限制](#约束与限制)\r\n    - [兼容性](#兼容性)\r\n  - [使用示例](#使用示例)\r\n    - [1. 获取 wifi 的 IP 地址](#1-获取-wifi-的-ip-地址)\r\n    - [2. 获取蜂窝网络的 IP 地址和子网掩码](#2-获取蜂窝网络的-ip-地址和子网掩码)\r\n    - [3. 获取代理信息](#3-获取代理信息)\r\n  - [使用说明](#使用说明)\r\n    - [1. 核心 API 说明](#1-核心-api-说明)\r\n      - [1.1 getWiFiIPAddress：获取 WiFi 的 IP 地址](#11-getwifiipaddress获取-wifi-的-ip-地址)\r\n      - [1.2 getCarrierIPAddress：获取蜂窝网络的 IP 地址](#12-getcarrieripaddress获取蜂窝网络的-ip-地址)\r\n      - [1.3 getHttpProxyInformation：获取代理信息](#13-gethttpproxyinformation获取代理信息)\r\n    - [2. 返回结果说明](#2-返回结果说明)\r\n      - [2.1 IP 信息对象（getWiFiIPAddress、getCarrierIPAddress 返回）](#21-ip-信息对象getwifiipaddressgetcarrieripaddress-返回)\r\n      - [2.2 代理信息对象（getHttpProxyInformation 返回）](#22-代理信息对象gethttpproxyinformation-返回)\r\n    - [3. 注意事项](#3-注意事项)\r\n  - [目录结构](#目录结构)\r\n  - [贡献代码](#贡献代码)\r\n  - [许可证](#许可证)\r\n  - [官方资源](#官方资源)\r\n\r\n\r\n## 简介\r\n\r\n`cordova-plugin-networkinterface` 是一款专为 Cordova 混合移动应用打造的网络接口信息获取插件，支持跨平台获取设备网络适配器的详细信息，包括 IP 地址、MAC 地址、子网掩码、网关等关键网络参数，助力开发者实现网络诊断、设备绑定等场景化需求。\r\n\r\n## 功能特性\r\n\r\n- **网络信息获取**：支持获取所有网络适配器的 IP 地址（IPv4/IPv6）、MAC 地址、子网掩码、网关、DNS 服务器等完整参数\r\n\r\n- **多适配器识别**：自动识别 Wi-Fi、以太网、移动数据（4G/5G）、蓝牙共享等不同类型的网络适配器\r\n\r\n- **活跃网络检测**：快速定位当前设备正在使用的活跃网络适配器，避免无效信息干扰\r\n\r\n- **跨平台一致性**：在 Android、iOS、Browser、OHOS 平台提供统一 API，屏蔽平台差异，降低开发成本\r\n\r\n- **完整错误处理**：针对权限不足、网络未连接等场景提供明确错误信息，便于问题定位\r\n\r\n## 支持平台\r\n\r\n- **Android**（API 级别 22 及以上）\r\n\r\n- **iOS**（iOS 11.0 及以上）\r\n\r\n- **Browser**（主流浏览器，如 Chrome、Firefox、Safari 等）\r\n\r\n- **OHOS**（5.0 及以上）\r\n\r\n## 下载安装\r\n\r\n通过 hcordova CLI 即可快速安装插件，支持从 npm 仓库或 GitCode 仓库获取，安装前请确保已创建 Cordova 项目（若未创建，执行 `cordova create networkApp com.example.networkapp NetworkApp` 创建）。\r\n\r\n### 前提条件\r\n\r\n在安装插件前，请确保开发环境已满足以下条件：\r\n\r\n- 已安装 Node.js（v14.0.0 及以上）和 npm（v6.0.0 及以上）\r\n\r\n- 已安装 HCordova CLI（10.0.0 及以上），可通过以下命令安装：\r\n\r\n```bash\r\nnpm install -g hcordova\r\n```\r\n\r\n- 已创建 Cordova 项目（若未创建，可通过 `cordova create networkApp com.example.networkapp NetworkApp` 命令创建）\r\n\r\n### 从 npm 安装（推荐）\r\n\r\n```bash\r\n# 安装最新稳定版插件\r\nhcordova plugin add cordova-plugin-networkinterface\r\n\r\n# 指定 OHOS 安装\r\nhcordova plugin add cordova-plugin-networkinterface --platform ohos\r\n\r\n# 安装指定版本（示例：1.0.0 版本）\r\nhcordova plugin add cordova-plugin-networkinterface@1.0.0 --platform ohos\r\n```\r\n\r\n### 从 GitCode 仓库安装\r\n\r\n适用于需要体验最新功能的开发者，仅为 OHOS 平台安装开发版插件：\r\n\r\n```bash\r\n# 仅支持 OHOS 平台\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-networkinterface.git --platform ohos\r\n# 指定标签/分支安装\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-networkinterface.git@develop --platform ohos\r\n```\r\n\r\n### 离线安装（本地包）\r\n\r\n适用于无网络环境，先下载插件包到本地，再执行离线安装：\r\n\r\n```bash\r\n# 下载插件包到本地（示例路径：../Downloads/cordova-plugin-networkinterface）\r\n# 执行离线安装\r\nhcordova plugin add ../Downloads/cordova-plugin-networkinterface  --platform ohos\r\n```\r\n\r\n### 安装后验证\r\n\r\n安装完成后，可通过以下命令验证插件是否成功添加到项目中：\r\n\r\n```bash\r\n# 查看已安装的插件列表，若包含本插件 ID 则表示插件已成功安装\r\nhcordova plugin list\r\n```\r\n\r\n\r\n### 卸载\r\n\r\n进入项目根目录，执行以下命令卸载插件，卸载后建议重新构建项目以清理残留的原生配置文件：\r\n\r\n```bash\r\n# Cordova CLI 全平台卸载\r\nhcordova plugin remove cordova-plugin-networkinterface \r\n\r\n# 指定平台卸载\r\nhcordova plugin remove cordova-plugin-networkinterface --platform ohos\r\n```\r\n\r\n## 约束与限制\r\n\r\n- 依赖插件：无强制依赖，可直接集成到 Cordova 项目中使用\r\n\r\n- 权限要求：部分网络信息（如 MAC 地址）获取需设备授予对应权限，权限不足时会返回明确错误信息\r\n\r\n- IP 地址支持：当前获取 IP 地址功能仅支持 IPv4，IPv6 暂不支持\r\n\r\n### 兼容性\r\n\r\n支持：\r\n\r\n| 项目 | 版本/信息 |\r\n|-----|--------|\r\n| SDK | API12+ |\r\n| IDE | DevEco Studio: 5.0+ |\r\n| ROM | 5.1+ |\r\n| Emulator | OpenHarmony 6.0+ |\r\n\r\n在以下版本中已测试通过：\r\n\r\n| 项目 | 版本/信息 |\r\n|-----|--------|\r\n| @cordova-ohos/ohos | 14.0.1-ohos-14.0.1 |\r\n| SDK | 5.0.0(12) |\r\n| IDE | DevEco Studio: 6.0.13.200 |\r\n| ROM | 5.1.0.120 SP3 |\r\n| Emulator | OpenHarmony 6.0.1(21) |\r\n\r\n## 使用示例\r\n\r\n插件通过全局对象 `networkinterface` 暴露所有 API 方法，所有操作均需在 `deviceready` 事件触发后调用，支持回调函数调用方式，以下为各功能的完整使用示例，可直接复制到项目中使用。\r\n\r\n### 1. 获取 wifi 的 IP 地址\r\n\r\n获取当前设备正在使用的活跃网络适配器的 IP 地址信息，当前仅支持 IPv4，返回 IP 地址和子网掩码：\r\n\r\n```javascript\r\n// 返回 ip 地址和子网掩码\r\nnetworkinterface.getWiFiIPAddress(function(ipInformation){\r\n    document.getElementById(\"wifiIp\").innerHTML = \"IP: \" + ipInformation.ip + \" subnet:\" + ipInformation.subnet;\r\n},function(error){\r\n    document.getElementById(\"wifiIp\").innerHTML = error;\r\n})\r\n```\r\n\r\n返回结果（IP 信息对象）：\r\n\r\n```json\r\n{\r\n  \"ip\": \"192.168.1.100\", // IP 地址\r\n  \"subnet\": \"255.255.255.0\", // 子网掩码\r\n}\r\n```\r\n\r\n### 2. 获取蜂窝网络的 IP 地址和子网掩码\r\n\r\n获取当前连接的蜂窝网络 IP 地址及子网掩码信息：\r\n\r\n```javascript\r\nnetworkinterface.getCarrierIPAddress(function(ipInformation){\r\n    document.getElementById(\"4GIp\").innerHTML = \"IP: \" + ipInformation.ip + \" subnet:\" + ipInformation.subnet;\r\n},function(error){\r\n    document.getElementById(\"4GIp\").innerHTML = error;\r\n})\r\n```\r\n\r\n返回结果（IP 信息对象）：\r\n\r\n```json\r\n{\r\n  \"ip\": \"192.168.1.100\", // IP 地址\r\n  \"subnet\": \"255.255.255.0\", // 子网掩码\r\n}\r\n```\r\n\r\n### 3. 获取代理信息\r\n\r\n获取指定地址的 HTTP 代理信息，返回代理类型、地址和端口：\r\n\r\n```javascript\r\nfunction getHttpProxyInformation() {\r\n    networkinterface.getHttpProxyInformation(\"http://www.***.com\", function(proxy){\r\n        document.getElementById(\"proxy\").innerHTML = \"type: \" + proxy.type + \" host:\" + proxy.host+\" port:\"+proxy.port;\r\n    },function(error){\r\n        document.getElementById(\"proxy\").innerHTML = error;\r\n    })\r\n}\r\n```\r\n\r\n返回结果（适配器列表）：\r\n\r\n```json\r\n{\r\n  \"type\": \"1\", // 1：配置有代理，0：无代理直连方式\r\n  \"host\": \"192.168.1.100\", // 返回代理地址\r\n  \"port\": 8090 // 返回代理端口\r\n}\r\n```\r\n\r\n## 使用说明\r\n\r\n以下为插件使用的核心说明，包括 API 详解、返回结果说明、注意事项等，帮助开发者快速上手并避免异常。\r\n\r\n### 1. 核心 API 说明\r\n\r\n插件通过全局对象 `networkinterface` 暴露所有 API 方法，无需额外引入，需在 Cordova 加载完成后（即 `deviceready` 事件触发后）调用，否则可能出现 API 调用失败的异常。\r\n\r\n#### 1.1 getWiFiIPAddress：获取 WiFi 的 IP 地址\r\n\r\n功能：获取当前设备正在使用的活跃 WiFi 网络适配器的 IP 地址信息，当前仅支持 IPv4。\r\n\r\n参数说明：\r\n\r\n- 成功回调（第一个参数）：触发时返回 IP 信息对象，包含 `ip`（IP 地址）和 `subnet`（子网掩码）两个属性。\r\n\r\n- 失败回调（第二个参数）：触发时返回错误信息字符串，用于排查问题（如权限不足、未连接 WiFi 等）。\r\n\r\n#### 1.2 getCarrierIPAddress：获取蜂窝网络的 IP 地址\r\n\r\n功能：获取当前设备连接的蜂窝网络（4G/5G）的 IP 地址及子网掩码信息。\r\n\r\n参数说明：\r\n\r\n- 成功回调（第一个参数）：触发时返回 IP 信息对象，结构与 `getWiFiIPAddress` 返回结果一致。\r\n\r\n- 失败回调（第二个参数）：触发时返回错误信息字符串（如未连接蜂窝网络、权限不足等）。\r\n\r\n#### 1.3 getHttpProxyInformation：获取代理信息\r\n\r\n功能：获取指定网络地址的 HTTP 代理信息，判断是否配置代理及代理详情。\r\n\r\n参数说明：\r\n\r\n- 第一个参数：需检测代理的网络地址（如 `http://www.***.com`）。\r\n\r\n- 成功回调（第二个参数）：触发时返回代理信息对象，包含 `type`（代理类型，1 为有代理，0 为无代理）、`host`（代理地址）、`port`（代理端口）三个属性。\r\n\r\n- 失败回调（第三个参数）：触发时返回错误信息字符串（如地址无效、网络未连接等）。\r\n\r\n### 2. 返回结果说明\r\n\r\n插件所有 API 的成功回调均返回对应信息对象，各对象结构及字段说明如下：\r\n\r\n#### 2.1 IP 信息对象（getWiFiIPAddress、getCarrierIPAddress 返回）\r\n\r\n| 字段名 | 类型 | 说明 |\r\n|---|---|---|\r\n| ip | 字符串 | 设备对应网络适配器的 IPv4 地址 |\r\n| subnet | 字符串 | 对应网络的子网掩码 |\r\n\r\n#### 2.2 代理信息对象（getHttpProxyInformation 返回）\r\n\r\n| 字段名 | 类型 | 说明 |\r\n|---|---|---|\r\n| type | 字符串 | 代理类型，1 表示配置有代理，0 表示无代理直连 |\r\n| host | 字符串 | 代理服务器地址（type 为 1 时有效） |\r\n| port | 数字 | 代理服务器端口（type 为 1 时有效） |\r\n\r\n### 3. 注意事项\r\n\r\n- API 调用时机：所有 API 必须在 `deviceready` 事件触发后调用，否则会导致 API 未定义、调用失败等异常。\r\n\r\n- 权限配置：部分网络信息（如 MAC 地址）的获取需要设备授予对应权限，权限不足时会触发失败回调并返回明确错误信息，需在应用中处理权限申请逻辑。\r\n\r\n- IP 地址支持：当前插件仅支持获取 IPv4 地址，IPv6 地址暂不支持，若需 IPv6 相关功能，可关注插件后续更新。\r\n\r\n- 网络状态要求：获取 WiFi 或蜂窝网络 IP 地址时，需确保设备已连接对应网络，否则会返回网络未连接相关错误。\r\n\r\n- 错误处理：建议在所有 API 的失败回调中添加错误日志打印或用户提示，便于排查问题，提升应用体验。\r\n\r\n## 目录结构\r\n\r\n```\r\ncordova-plugin-networkinterface    # [根目录] 网络接口插件项目根目录\r\n├── src                            # [源码目录] 存放原生平台代码\r\n│   └── main                       # [主目录] 主代码目录\r\n│       ├── cpp                    # [C++ 目录] C++ 原生代码目录\r\n│       │   └── NetworkManager     # [C++ 模块] 网络管理 C++ 模块文件夹\r\n│       │       ├── networkinterface.cpp # [C++ 实现] C++ 源文件，实现网络接口底层逻辑\r\n│       │       └── networkinterface.h   # [C++ 声明] C++ 头文件，定义接口\r\n│       └── ets                    # [ArkTS 目录] ArkTS/ETS 代码目录\r\n│           └── components         # [组件目录] 存放 UI 或逻辑组件\r\n│               └── PluginAction   # [TS 模块] 插件动作逻辑文件夹\r\n│                   └── GetNetWorkInfo.ets # [ETS 文件] 获取网络信息的 ArkTS 实现\r\n├── www                            # [前端目录] 存放供 Web 端调用的 JS 接口文件\r\n│   └── networkinterface.js        # [JS 文件] 暴露给 Web 端的网络接口操作 API\r\n├── .gitignore                     # [Git 配置] 指定 Git 版本控制中需要忽略的文件和目录\r\n├── LICENSE                        # [许可证] 项目的开源协议或版权声明\r\n├── OAT.xml                        # [门禁配置] OHOS 系统的安全或权限配置文件\r\n├── package.json                   # [NPM 配置] 项目元数据，包含版本、依赖等信息\r\n├── plugin.xml                     # [Cordova 配置] 核心配置文件，定义插件结构和映射\r\n└── README.md                      # [说明文档] 项目的使用说明和功能介绍\r\n```\r\n\r\n## 贡献代码\r\n\r\n使用过程中发现任何问题都可以提 [Issue](https://gitcode.com/CPF-Cordova/cordova-plugin-networkinterface/issues) ，当然也非常欢迎发 [PR](https://gitcode.com/CPF-Cordova/cordova-plugin-networkinterface/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **Apache License 2.0** 开源，详见 [LICENSE](LICENSE) 文件。\r\n\r\n## 官方资源\r\n\r\n- Android 和 iOS：[cordova-plugin-networkinterface 官方指南](https://www.npmjs.com/package/cordova-plugin-networkinterface)\r\n\r\n- GitCode 仓库：[CPF-Cordova/cordova-plugin-networkinterface](https://gitcode.com/CPF-Cordova/cordova-plugin-networkinterface)\r\n","readmeFilename":"README.md"}