2017-10-09 6 views
0

インターネットに接続されているかどうかを確認するために、私のアプリでNetInfoを使用します。Netinfo.isConnected.fetch()がtrueを返します

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

ルータやモバイルデータに接続している場合はtrue、そうでない場合はfalseを返します。

インターネットに接続していなくても、ルータに接続している場合やモバイルデータがオンの場合、問題が発生します。それでも真実を返します。

これを解決する方法はありますか?またはインターネット接続をチェックする他の回避策/代替手段

答えて

0

これはRNのバグが原因です。

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(); 
} 

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

は、ここに記載されている回避策がいくつかあります

関連する問題