{"_id":"@cordova-ohos/cordova-plugin-network-information","_rev":"5-d04879121ed94b05abbc852c239cb09f","name":"@cordova-ohos/cordova-plugin-network-information","dist-tags":{"latest":"3.0.1"},"versions":{"3.0.0":{"name":"@cordova-ohos/cordova-plugin-network-information","version":"3.0.0","keywords":["cordova","network-information","ecosystem:cordova","cordova-openharmony"],"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/cordova-plugin-network-information@3.0.0","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"bugs":{"url":"https://gitcode.com/OpenHarmony-Cordova/cordova-plugin-network-information/issues"},"dist":{"shasum":"006cb2fbc31ac0c3c9af35fbc3b7b58d1f37d352","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-network-information/-/cordova-plugin-network-information-3.0.0.tgz","fileCount":9,"integrity":"sha512-W2KOHF2D0Rfp01jFTVsCyVF6sNRwDPJqE8elHhelHgxBnE5KOJf6DKzpGJoP0fTR6WpTYeJG1Gz4crBcbK/M2g==","signatures":[{"sig":"MEUCIA6aiKiMUw9uMC8l5Za1SFGCNu63c1HEZMLkeSqYTkWfAiEAw45gyyyZpgAorHDdtcVTaED5z4eNs7MzafVmIvyzmGg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42633},"cordova":{"id":"cordova-plugin-network-information","platforms":["ohos"]},"engines":{"cordovaDependencies":{"3.0.0":{"hcordova":">=1.0.0","@cordova-ohos/ohos":">=2.0.0"}}},"gitHead":"e65265a4bd48a94caef1bb097181a9123975ce2d","_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"repository":{"url":"gitcode:OpenHarmony-Cordova/cordova-plugin-network-information","type":"git"},"_npmVersion":"10.5.1","description":"Cordova network information Plugin","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cordova-plugin-network-information_3.0.0_1773827207956_0.35032956109274305","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@cordova-ohos/cordova-plugin-network-information","version":"3.0.1","description":"Cordova Network Information Plugin","cordova":{"id":"cordova-plugin-network-information","platforms":["ohos"]},"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-network-information"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-network-information/issues"},"keywords":["cordova","network-information","ecosystem:cordova","cordova-openharmony"],"engines":{"cordovaDependencies":{"3.0.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-network-information@3.0.1","gitHead":"8263e2aa8e3782016f73ddf4dd939ece6f6ff452","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-NUKPtxBS+0F8kTMO0RzHOqXy/2Q32ZC7na2DIfiuwb+IYxKQqVISFhVEr166yzeTR+qBbHZ72TiZxiEVAmbBRQ==","shasum":"e8c7e99a205416447fabee475411fcd3f2019511","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-network-information/-/cordova-plugin-network-information-3.0.1.tgz","fileCount":10,"unpackedSize":65083,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICLJZ5oRgGXPZp70gj0kItHiY5VDVqJpJlBXQ/NHx6hzAiBnO1TqHVJv57qymMKLKbwp3KIXURlm52307Zvly2YmdA=="}]},"_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-network-information_3.0.1_1785141023237_0.15384531877618812"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-18T09:46:47.835Z","modified":"2026-07-27T08:30:23.572Z","3.0.0":"2026-03-18T09:46:48.098Z","3.0.1":"2026-07-27T08:30:23.358Z"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-network-information/issues"},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","keywords":["cordova","network-information","ecosystem:cordova","cordova-openharmony"],"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-network-information"},"description":"Cordova Network Information 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-network-information</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-network-information@3.0.0](https://www.npmjs.com/package/cordova-plugin-network-information/v/3.0.0) 开发，本文档重点阐述其在 OpenHarmony（OHOS）系统中的具体应用。\r\n\r\n- [cordova-plugin-network-information](#cordova-plugin-network-information)\r\n  - [简介](#简介)\r\n  - [支持平台](#支持平台)\r\n  - [下载安装](#下载安装)\r\n    - [前提条件](#前提条件)\r\n    - [从 npm 安装（推荐）](#从-npm-安装推荐)\r\n    - [安装指定版本](#安装指定版本)\r\n    - [从 GitCode 仓库安装](#从-gitcode-仓库安装)\r\n    - [离线安装（本地包）](#离线安装本地包)\r\n    - [安装后验证](#安装后验证)\r\n    - [卸载](#卸载)\r\n  - [约束与限制](#约束与限制)\r\n    - [兼容性](#兼容性)\r\n  - [使用示例](#使用示例)\r\n    - [1. 获取当前网络状态示例](#1-获取当前网络状态示例)\r\n    - [2. 监听网络状态变化示例](#2-监听网络状态变化示例)\r\n      - [2.1 监听在线/离线事件](#21-监听在线离线事件)\r\n    - [3. 完整页面集成示例](#3-完整页面集成示例)\r\n  - [使用说明](#使用说明)\r\n    - [1. 核心 API 说明](#1-核心-api-说明)\r\n      - [1.1 获取当前网络类型](#11-获取当前网络类型)\r\n      - [1.2 监听网络状态变化](#12-监听网络状态变化)\r\n      - [1.3 网络类型常量](#13-网络类型常量)\r\n    - [2. OHOS 平台特定配置](#2-ohos-平台特定配置)\r\n    - [3. 注意事项](#3-注意事项)\r\n  - [目录结构](#目录结构)\r\n  - [贡献代码](#贡献代码)\r\n  - [许可证](#许可证)\r\n  - [官方资源](#官方资源)\r\n\r\n\r\n## 简介\r\n\r\n`cordova-plugin-network-information` 是一款用于 Cordova/PhoneGap 应用的插件，旨在帮助开发者获取设备的网络连接状态信息，包括网络类型（如 WiFi、蜂窝数据等）、连接状态（在线/离线）等关键数据。通过该插件，开发者可以轻松实现网络状态监听、网络类型判断等功能，从而为用户提供更智能的应用体验（例如在离线时提示用户检查网络连接），本文档主要介绍该插件在 OHOS 系统中的应用。\r\n\r\n该插件遵循 Cordova 插件开发规范，支持多平台运行，并提供了简洁易用的 JavaScript API，可快速集成到 Cordova 项目中。\r\n\r\n## 支持平台\r\n\r\n- **Android**（API 级别 22 及以上）\r\n\r\n- **iOS**（iOS 11.0 及以上）\r\n\r\n- **Windows**（Windows 10 及以上，包括 UWP 应用）\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 仓库获取。\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 项目（若未创建，可通过 `hcordova create myApp` 命令创建）\r\n\r\n### 从 npm 安装（推荐）\r\n\r\n```bash\r\n# 全平台安装\r\nhcordova plugin add cordova-plugin-network-information\r\n\r\n# 指定 OHOS 平台安装\r\nhcordova plugin add cordova-plugin-network-information --platform ohos\r\n```\r\n\r\n### 安装指定版本\r\n\r\n仅为 OHOS 平台安装指定版本插件：\r\n\r\n```bash\r\nhcordova plugin add cordova-plugin-network-information@1.0.0 --platform ohos\r\n```\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-network-information.git --platform ohos\r\n\r\n# 指定标签/分支安装\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-network-information.git@develop --platform ohos\r\n```\r\n\r\n### 离线安装（本地包）\r\n\r\n适用于无网络环境，先下载插件包到本地，再执行离线安装：\r\n\r\n```bash\r\n# 下载插件包到本地（示例路径：../Downloads/cordova-plugin-network-information）\r\n# 执行离线安装\r\nhcordova plugin add ../Downloads/cordova-plugin-network-information  --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```bash\r\n# Cordova CLI 全平台卸载\r\nhcordova plugin remove cordova-plugin-network-information \r\n\r\n# 指定平台卸载\r\nhcordova plugin remove cordova-plugin-network-information --platform ohos\r\n```\r\n\r\n## 约束与限制\r\n\r\n- 依赖插件：无强制依赖，可直接集成到 Cordova 项目中使用\r\n\r\n- OHOS 平台需配置网络权限，否则无法正常获取网络状态（详见使用说明）\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插件通过 `navigator.connection` 对象暴露所有网络相关 API，以下为获取网络状态、监听网络变化及完整页面集成的示例，可直接复制到项目中使用。\r\n\r\n### 1. 获取当前网络状态示例\r\n\r\n通过 `navigator.connection.type` 获取当前设备网络类型，并进行简单判断：\r\n\r\n```javascript\r\n// 获取当前网络类型\r\nconst networkType = navigator.connection.type;\r\n// 打印网络类型\r\nconsole.log('当前网络类型：', networkType);\r\n// 判断是否为 WiFi 网络\r\nif (networkType === navigator.connection.WIFI) {\r\n   alert('当前使用 WiFi 网络');\r\n}\r\n\r\n// 判断是否离线\r\nelse if (networkType === navigator.connection.NONE) {\r\n   alert('当前无网络连接，请检查网络设置');\r\n}\r\n```\r\n\r\n### 2. 监听网络状态变化示例\r\n\r\n监听 `online`、`offline` 事件捕获在线/离线状态变化，监听 `networkconnectionchange` 事件捕获网络类型变化：\r\n\r\n#### 2.1 监听在线/离线事件\r\n\r\n```javascript\r\n// 监听“在线”事件\r\ndocument.addEventListener('online', function() {\r\n   alert('网络已连接，当前网络类型：' + navigator.connection.type);\r\n}, false);\r\n\r\n// 监听“离线”事件\r\ndocument.addEventListener('offline', function() {\r\n   alert('网络已断开，请检查网络连接');\r\n}, false);\r\n```\r\n\r\n### 3. 完整页面集成示例\r\n\r\n以下是完整的 Cordova 页面示例，实现网络状态实时监听与显示：\r\n\r\n```html\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n   <meta charset=\"utf-8\">\r\n   <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n   <title>网络状态监听示例</title>\r\n   <script type=\"text/javascript\" src=\"cordova.js\"></script>\r\n   <script type=\"text/javascript\">\r\n       // Cordova 加载完成后执行\r\n       document.addEventListener('deviceready', onDeviceReady, false);\r\n       function onDeviceReady() {\r\n           console.log('Cordova 已加载完成');\r\n           // 初始化时获取当前网络状态\r\n           updateNetworkStatus();\r\n           // 监听网络状态变化\r\n           document.addEventListener('online', updateNetworkStatus, false);\r\n           document.addEventListener('offline', updateNetworkStatus, false);\r\n       }\r\n\r\n       // 更新网络状态显示\r\n       function updateNetworkStatus() {\r\n           const networkType = navigator.connection.type;\r\n           const statusElement = document.getElementById('network-status');\r\n           // 根据网络类型设置显示内容\r\n           let statusText = '';\r\n           switch (networkType) {\r\n               case navigator.connection.WIFI:\r\n                   statusText = '当前网络：WiFi';\r\n                   statusElement.style.color = 'green';\r\n                   break;\r\n               case navigator.connection.CELL_2G:\r\n               case navigator.connection.CELL_3G:\r\n               case navigator.connection.CELL_4G:\r\n               case navigator.connection.CELLULAR:\r\n                   statusText = `当前网络：${networkType}`;\r\n                   statusElement.style.color = 'orange';\r\n                   break;\r\n               case navigator.connection.NONE:\r\n                   statusText = '当前网络：离线';\r\n                   statusElement.style.color = 'red';\r\n                   break;\r\n               default:\r\n                   statusText = `当前网络：未知（${networkType}）`;\r\n                   statusElement.style.color = 'gray';\r\n                   break;\r\n           }\r\n\r\n           // 更新页面显示\r\n           statusElement.textContent = statusText;\r\n           console.log('网络状态更新：', statusText);\r\n       }\r\n   </script>\r\n</head>\r\n<body style=\"padding: 20px; font-family: Arial, sans-serif;\">\r\n   <h1>网络状态监听</h1>\r\n   <p id=\"network-status\">正在获取网络状态...</p>\r\n</body>\r\n</html>\r\n```\r\n\r\n## 使用说明\r\n\r\n以下为插件使用的核心说明，包括 API 详解、网络类型说明、平台特定配置及注意事项，帮助开发者快速上手并避免异常。\r\n\r\n### 1. 核心 API 说明\r\n\r\n插件通过全局对象 `navigator.connection` 暴露所有网络相关 API，无需额外引入，Cordova 加载完成后即可直接调用。\r\n\r\n#### 1.1 获取当前网络类型\r\n\r\n通过 `navigator.connection.type` 获取当前设备的网络类型，返回值为字符串类型，具体枚举值及说明如下：\r\n\r\n| 返回值 | 说明 |\r\n|---|---|\r\n| `unknown` | 未知网络类型 |\r\n| `ethernet` | 以太网连接 |\r\n| `wifi` | WiFi 网络 |\r\n| `2g` | 2G 蜂窝网络（如 GSM、CDMA） |\r\n| `3g` | 3G 蜂窝网络（如 WCDMA、CDMA2000） |\r\n| `4g` | 4G 蜂窝网络（如 LTE） |\r\n| `cellular` | 通用蜂窝网络（未区分 2G/3G/4G） |\r\n| `none` | 无网络连接（离线） |\r\n\r\n#### 1.2 监听网络状态变化\r\n\r\n通过监听相关事件，可实时捕获网络状态的变化，适用于需要根据网络状态动态调整应用功能的场景：\r\n\r\n- `online` 事件：当设备从离线切换到在线时触发。\r\n\r\n- `offline` 事件：当设备从在线切换到离线时触发。\r\n\r\n- `networkconnectionchange` 事件：当网络类型发生变化时触发（如从 WiFi 切换到 4G）。\r\n\r\n#### 1.3 网络类型常量\r\n\r\n插件为常用网络类型定义了常量，可直接通过 `navigator.connection` 访问，避免硬编码字符串，提高代码可读性和可维护性，常量对应关系如下：\r\n\r\n| 常量名 | 对应值 | 说明 |\r\n|---|---|---|\r\n| `UNKNOWN` | `unknown` | 未知网络类型 |\r\n| `ETHERNET` | `ethernet` | 以太网 |\r\n| `WIFI` | `wifi` | WiFi 网络 |\r\n| `CELL_2G` | `2g` | 2G 蜂窝网络 |\r\n| `CELL_3G` | `3g` | 3G 蜂窝网络 |\r\n| `CELL_4G` | `4g` | 4G 蜂窝网络 |\r\n| `CELLULAR` | `cellular` | 通用蜂窝网络 |\r\n| `NONE` | `none` | 无网络连接 |\r\n\r\n### 2. OHOS 平台特定配置\r\n\r\nOHOS 平台使用插件前，需在主项目的 module.json5 中添加网络权限配置，否则无法正常获取网络状态，配置如下：\r\n\r\n```json\r\n{\r\n    \"name\": \"ohos.permission.INTERNET\"\r\n}\r\n```\r\n\r\n### 3. 注意事项\r\n\r\n- API 调用时机：需在 Cordova 加载完成后（即 `deviceready` 事件触发后）调用 `navigator.connection` 相关 API，否则可能出现获取不到网络状态的异常。\r\n\r\n- 权限配置：OHOS 平台必须配置 `ohos.permission.INTERNET` 权限，否则插件无法正常工作。\r\n\r\n- 网络类型兼容性：不同设备对网络类型的识别可能存在差异，建议使用常量判断网络类型，避免直接使用字符串硬编码。\r\n\r\n- 离线状态处理：监听 `offline` 事件时，建议提示用户检查网络连接，并对应用功能进行适配（如禁用需要网络的操作）。\r\n\r\n## 目录结构\r\n\r\n```\r\ncordova-plugin-network-information # [根目录] 网络信息插件项目根目录\r\n├── src                            # [源码目录] 存放原生平台代码\r\n│   └── main                       # [主目录] 主代码目录\r\n│       └── cpp                    # [C++ 目录] C++ 原生代码目录\r\n│           └── NetworkManager     # [C++ 模块] 网络管理 C++ 模块文件夹\r\n│               ├── NetworkManager.cpp # [C++ 实现] C++ 源文件，实现网络状态检测逻辑\r\n│               └── NetworkManager.h   # [C++ 声明] C++ 头文件，定义网络管理接口\r\n├── www                            # [前端目录] 存放供 Web 端调用的 JS 接口文件\r\n│   ├── Connection.js              # [JS 文件] 定义网络连接类型的常量或枚举\r\n│   └── network.js                 # [JS 文件] 获取网络信息的主逻辑接口\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-network-information/issues) ，当然也非常欢迎发 [PR](https://gitcode.com/CPF-Cordova/cordova-plugin-network-information/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-network-information 官方指南](https://www.npmjs.com/package/cordova-plugin-network-information)\r\n\r\n- GitCode 仓库：[CPF-Cordova/cordova-plugin-network-information](https://gitcode.com/CPF-Cordova/cordova-plugin-network-information)\r\n","readmeFilename":"README.md"}