@exodus/netinfo

中文文档
1.4.2-exodus.1发布于 2026/11/05MITTypeScriptCommonJS零依赖近 30 天下载 1.4万

IOS & Android 的本地网络信息API

中文使用文档
文档目录10 节
  1. 开始
  2. 从核心移动 react-native 模块
  3. 使用量
  4. 获取连接信息
  5. 订阅连接信息
  6. 已连接
  7. 连接昂贵( 只有Android)
  8. 维护者
  9. 捐款
  10. 许可证

@react-native-community/netinfo

CircleCI Status Supports Android and iOS MIT License

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 本地文档中的指令 以手动链接框架或链接 茧类 将此添加到您的 Podfile数字 :

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

作出下列修改:

android/settings.gradle

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

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

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

在进口方面:

import com.reactnativecommunity.netinfo.NetInfoPackage;

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

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

从核心移动 react-native 模块

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

import { NetInfo } from "react-native";

改为:

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

使用量

从导入库开始 :

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

获取连接信息

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

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 见上文.

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);

已连接

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

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

一次获得连接状态 :

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

或订阅更改 :

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)

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

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

维护者

捐款

请看 contributing guide。 。 。 .

许可证

图书馆以麻省理工学院的许可发行. 更多信息见 LICENSE。 。 。 .

版本与发布记录

@exodus/netinfo 共发布 3 个版本,首次发布于 2020/07/08;过去 12 个月发布了 2 个版本。

版本发布日期距今
1.4.2-exodus.1latest2026/11/059 天前
1.4.2-exodus.02026/04/276 个月前
1.4.22020/07/086 年前

关于 @exodus/netinfo 的常见问题

@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 和提交记录判断。