# @exodus/netinfo 中文文档

规范地址：https://npmcn.com/package/%40exodus/netinfo/

版本：1\.4\.2-exodus\.1
npm 元数据更新时间：2026-11-04T16:10:58.644Z
中文译文更新时间：2026-11-14T04:00:52.407Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40exodus/netinfo
原文对照：https://npmcn.com/package/%40exodus/netinfo/?lang=original
项目主页：https://github.com/ExodusMovement/react-native-netinfo#readme
源码仓库：https://github.com/ExodusForks/react-native-netinfo

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：93.7 kB，30 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：react ^16\.0，react-native \>=0\.57 \<0\.59
- 首次发布：2020-07-08T15:10:17.992Z
- 最新版本发布：2026-11-04T16:10:58.444Z
- 近 30 天下载量：14210（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：3（近 12 个月 2 个）

## 中文简介

IOS & Android 的本地网络信息API

## 安装

```sh
npm install @exodus/netinfo
```

也可以使用：`pnpm add @exodus/netinfo`、`yarn add @exodus/netinfo`、`bun add @exodus/netinfo`

## README

# `@react-native-community/netinfo`

[![CircleCI Status](https://img.shields.io/circleci/project/github/react-native-community/react-native-netinfo/master.svg)](https://circleci.com/gh/react-native-community/workflows/react-native-netinfo/tree/master) ![Supports Android and iOS](https://img.shields.io/badge/platforms-android%20%7C%20ios-lightgrey.svg) ![MIT License](https://img.shields.io/npm/l/@react-native-community/netinfo.svg)

Android & iOS的回放原生网络信息API. 它允许您获取以下信息:

-   在线/离线状态
-   连接类型
-   连接质量

## 开始

使用 Yarn 中任何一种安装库 :

```
yarn add @react-native-community/netinfo
```

或 npm 类型 :

```
npm install --save @react-native-community/netinfo
```

然后,您需要将库的本地部分链接到你使用的平台。 链接库的最简单方式是使用 CLI 工具, 从您的工程根运行此命令 :

```
react-native link @react-native-community/netinfo
```

如果无法或不愿使用 CLI 工具,也可以使用下面的指令手动链接库(点击箭头显示它们):

手动链接 iOS 上的库

要么跟着 [react 本地文档中的指令](https://facebook.github.io/react-native/docs/linking-libraries-ios#manual-linking) 以手动链接框架或链接 [茧类](https://cocoapods.org/) 将此添加到您的 `Podfile`数字 :

```ruby
pod 'react-native-netinfo', :path => '../node_modules/@react-native-community/netinfo'
```
在Android上手动链接库

作出下列修改:

#### `android/settings.gradle`

```groovy
include ':react-native-community-netinfo'
project(':react-native-community-netinfo').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/netinfo/android')
```

#### `android/app/build.gradle`

```groovy
dependencies {
   ...
   implementation project(':react-native-community-netinfo')
}
```

#### `android/app/src/main/.../MainApplication.java`

在进口方面:

```java
import com.reactnativecommunity.netinfo.NetInfoPackage;
```

添加数据 `RNLocationPackage` 分类到导出软件包列表.

```java
@Override
protected List<ReactPackage> getPackages() {
    return Arrays.asList(
            new MainReactPackage(),
            new NetInfoPackage()
    );
}
```

## 从核心移动 `react-native` 模块

这个模块是在NetInfo从React Introduct核心分出时创建的. 要迁移到此模块, 您需要遵循上面的安装指令, 然后更改您从 :

```javascript
import { NetInfo } from "react-native";
```

改为:

```javascript
import NetInfo from "@react-native-community/netinfo";
```

## 使用量

从导入库开始 :

```javascript
import NetInfo from "@react-native-community/netinfo";
```

### 获取连接信息

返回以 `type` 财务报告和审定财务报表 `effectiveType` 值为 a 的键 `ConnectionType` 还有一个 `EffectiveConnectionType`页:1.

```javascript
NetInfo.getConnectionInfo().then(connectionInfo => {
  console.log("Connection type", connectionInfo.type);
  console.log("Connection effective type", connectionInfo.effectiveType);
});
```

#### `ConnectionType`

跨平台值 :

-   `none` - 设备下线了
-   `wifi` - 设备是在线的,通过wifi连接,或者是iOS模拟器
-   `cellular` - 设备通过Edge、3G、WiMax或LTE连接
-   `unknown` - 错误大小写和网络状态未知

Android 仅限值 :

-   `bluetooth` - 设备通过蓝牙连接
-   `ethernet` - 设备通过以太网连接
-   `wimax` - 设备通过WiMAX连接

#### `EffectiveConnectionType`

跨平台值 :

-   `2g`
-   `3g`
-   `4g`
-   `unknown`

### 订阅连接信息

订阅连接信息 。 当连接状态发生变化时,调用即为调用. 返回的对象形状与 `getConnectionInfo` 见上文.

```javascript
const listener = connectionInfo => {
  console.log("Connection type", connectionInfo.type);
  console.log("Connection effective type", connectionInfo.effectiveType);
};

// Subscribe
const subscription = NetInfo.addEventListener('connectionChange', listener);

// Unsubscribe through remove
subscription.remove();

// Unsubscribe through event name
NetInfo.removeEventListener('connectionChange', listener);
```

### 已连接

返回一个可以解析出布尔的许诺, 它表示是否有活动连接 .

_说明: 这只说明一个设备有主动的连接,而不是它能够接入互联网._

一次获得连接状态 :

```javascript
NetInfo.isConnected.fetch().then(isConnected => {
  console.log("Is connected", isConnected);
});
```

或订阅更改 :

```javascript
const listener = isConnected => {
  console.log("Is connected", isConnected);
};

// Subscribe
const subscription = NetInfo.isConnected.addEventListener('connectionChange', listener);

// Unsubscribe through remove
subscription.remove();

// Unsubscribe through event name
NetInfo.isConnected.removeEventListener('connectionChange', listener);
```

### 连接昂贵( 只有Android)

检测当前活动连接是否被干扰 。 当用户由于货币成本、数据限制或电池/性能问题而对连接方面的大量数据使用敏感时,网络被归类为计量吸入器.

```javascript
NetInfo.isConnectionExpensive().then(isConnectionExpensive => {
  console.log("Is connection expensive", isConnectionExpensive);
});
```

## 维护者

-   [马特·奥克](https://github.com/matt-oakes) - 说吧 [Freelance 反应原生开发者](http://mattoakes.net/)
-   [迈克·迪亚米德](https://github.com/salakar) - 说吧 [倒转](https://invertase.io/)

## 捐款

请看 [`contributing guide`](https://npmcn.com/CONTRIBUTING.md)。 。 。 .

## 许可证

图书馆以麻省理工学院的许可发行. 更多信息见 [`LICENSE`](https://npmcn.com/LICENSE)。 。 。 .

## 常见问题

### @exodus/netinfo 是什么？

IOS & Android 的本地网络信息API

### 如何安装 @exodus/netinfo？

在项目目录运行 npm install @exodus/netinfo，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（^16\.0）、react-native（\>=0\.57 \<0\.59）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @exodus/netinfo 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @exodus/netinfo 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @exodus/netinfo 可以商用吗？

@exodus/netinfo 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @exodus/netinfo 的下载量有多少？

根据 npm 官方下载统计，@exodus/netinfo 在 2026/10/14 – 2026/11/12 这 30 天内被下载 14,210 次，日均约 474 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @exodus/netinfo 还在维护吗？

最新版本 1\.4\.2-exodus\.1 发布于 2026/11/05（9 天前）；至今共发布 3 个版本，其中过去 12 个月发布了 2 个；首次发布于 2020/07/08。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

