如何在Expo React Native应用程序中检查互联网连接?

Dan*_* B. 3 react-native expo

我有一个使用托管工作流程的Expo应用程序。该应用需要检查互联网连接是否可用。

  • 我不能import { NetInfo } from 'react-native'因为那不推荐使用
  • 我不能使用react-native-community / react-native-netinfo,因为它使用本机库,而您不能通过Expo托管的应用程序来做到这一点。
  • 为了使用上面的命令,我可以退出,但是似乎不需要检查互联网是否存在。
  • 我无法使用,navigator.onLine因为该全局变量似乎不可用。
  • 我可以向Google或我自己的服务器或其他服务器发出微不足道的HTTP请求,看看是否收到响应,但这仅测试到一个站点的连接,而且要花费时间并占用带宽。

我该怎么办?

CZ *_*man 8

Expo SDK 34 已经包含了NetInfo API.

您可以在此处查看他们的 SDK 34 文档https://docs.expo.io/versions/v34.0.0/sdk/netinfo

这是最新版本文档的链接


Sai*_*sad 7

2022 年,在弹出 expo 之前遇到了同样的问题,我们使用了 expo-network

import * as Network from 'expo-network';
Run Code Online (Sandbox Code Playgroud)

并像这样使用它

const networkState = await Network.getNetworkStateAsync();
Run Code Online (Sandbox Code Playgroud)

我希望这可以帮助别人!


zay*_*rix 5

使用NetInforeact-native

是的,不建议使用该版本,因为他们计划在下一个版本中删除它,react-native以支持社区版本。但是,它完全可以使用,并且现在仍可以使用,只需确保Expo SDK在发行新版本时检查是否有重大更改。

世博会很可能在将其react-native删除时将其带入其托管工作流,或提供不需要从Expo弹出的替代方案。