2017-10-09 155 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(); 
}