连接到wifi但没有互联网时,NetInfo返回true

时间:2018-03-18 23:41:23

标签: react-native

NetInfo在连接到wifi时返回true但没有互联网。除了NetInfo之外,还有哪些其他最好的选项来检查本地的互联网连接?

2 个答案:

答案 0 :(得分:3)

您必须ping并查看连接是否确实具有互联网连接。 首先使用netInfo。使用它的 icConnected 方法可以查明设备是否已连接到网络。如果是这样,请使用您的HTTP客户端添加拦截器,并在发送实际请求之前尝试ping并检查互联网连接。

此外,如果您需要更多高级内容,请尝试使用此库来处理离线数据。它会解决您的问题。 https://github.com/rauliyohmc/react-native-offline

答案 1 :(得分:1)

遗憾的是,没有其他方法可以ping某种主机并等待响应。

你可以这样做:

poll() {
  setTimeout(() => {
    poll();

    return fetch('http://www.google.com')
      .then((response) => {
        // this is the success callback
        // you could check if the app was previously offline
        // and set it back to online to get rid of the offline hint
      })
      .catch((err) => {
        // error callback
        // use this to handle some sort of notification for the user
        // you could update a state within your root container
        // or redux to update the app with some visual hints
      });
  }, 5000);
}

希望这有帮助