在react native中,是否有一种获取设备网络状态的方法?例如,我想知道当前设备是在线还是离线。另外,我想检测设备何时联机或脱机,以便向用户显示消息或我需要运行的任何其他进程。

到目前为止,我所能找到的只是向API发送请求,并为catch设置了fetch回调,如果没有连接,则catch回调将运行,这似乎可行,但是我想知道是否有更好的方法来解决这个。

我也想知道设备是否正在使用wifi或LTE连接。

有什么帮助吗?

最佳答案

NetInfo API

看看React Natives NetInfo API。以下示例是从官方文档复制而来的:

const ConnectionInfoCurrent = React.createClass({
  getInitialState() {
    return {
      connectionInfo: null,
    };
  },
  componentDidMount: function() {
    NetInfo.addEventListener(
        'change',
        this._handleConnectionInfoChange
    );
    NetInfo.fetch().done(
        (connectionInfo) => { this.setState({connectionInfo}); }
    );
  },
  componentWillUnmount: function() {
    NetInfo.removeEventListener(
        'change',
        this._handleConnectionInfoChange
    );
  },
  _handleConnectionInfoChange: function(connectionInfo) {
    this.setState({
      connectionInfo,
    });
  },
  render() {
    return (
        <View>
          <Text>{this.state.connectionInfo}</Text>
        </View>
    );
  }
});

09-11 17:58