2017-10-09 113 views
0

我在我的应用程序中使用NetInfo来检查它是否连接到互联网。Netinfo.isConnected.fetch()返回true

NetInfo.isConnected.fetch().then((isConnected) => { 
    console.log('isConnected: ', isConnected); 
}); 

如果我连接到路由器或移动数据已打开,则返回true,否则返回false。

我的问题是,如果我连接到路由器或我的移动数据打开,即使它没有互联网连接。它仍然返回true。

任何想法解决这个?或其他解决方法/替代方案来检查互联网连接?

回答

0

这是由于RN的错误。

https://github.com/facebook/react-native/issues/8615

有几个变通这里列出:

componentDidMount() { 
    const dispatchConnected = isConnected => this.props.dispatch(setIsConnected(isConnected)); 

    NetInfo.isConnected.fetch().then().done(() => { 
    NetInfo.isConnected.addEventListener('change', dispatchConnected); 
    }); 
} 

export function isNetworkConnected() { 
    if (Platform.OS === 'ios') { 
    return new Promise(resolve => { 
     const handleFirstConnectivityChangeIOS = isConnected => { 
     NetInfo.isConnected.removeEventListener('change', handleFirstConnectivityChangeIOS); 
     resolve(isConnected); 
     }; 
     NetInfo.isConnected.addEventListener('change', handleFirstConnectivityChangeIOS); 
    }); 
    } 

    return NetInfo.isConnected.fetch(); 
}