首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得网络状态?

如何获得网络状态?
EN

Stack Overflow用户
提问于 2016-04-27 17:50:39
回答 2查看 1.6K关注 0票数 2

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

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

我还想知道该设备是否使用wifi或lte连接。

有什么帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-28 05:56:54

NetInfo API

看看反应本地NetInfo API。以下示例是从正式文档中复制的:

代码语言:javascript
复制
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>
    );
  }
});
票数 5
EN

Stack Overflow用户

发布于 2016-04-27 18:08:45

您可以使用连接管理器访问网络状态。您可以使用相同的方法读取WIFI和移动数据。

代码语言:javascript
复制
public void checkInternet() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetwork = cm.getActiveNetworkInfo();

    if (activeNetwork != null) {
        if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
            Log.d(TAG, "checkInternet: " + "Connected to WIFI");
        } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
            Log.d(TAG, "checkInternet: " + "Connected to Mobile data");
        }
    } else {
        Log.d(TAG, "checkInternet: " + "Not connected");
    }
}

还不要忘记将权限添加到清单中。

代码语言:javascript
复制
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

希望能帮上忙!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36897283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档