NetInfo API를 이용하여 기기의 네트워크의 연결 유무를 알 수 있습니다.
geolocation에서와 같이 안드로이드에는 권한을 추가해 줘야 합니다.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
netinfo를 위해 npm module을 설치하고 link를 해줍니다.
npm install --save @react-native-community/netinfo
react-native link @react-native-community/netinfo
*iOS emulator의 경우 ios폴더 내에 pod install로 module을 설치해주자
1. netinfo.js를 생성하고 'react-native-community'에서 NetInfo import한다.
생성자에 connectionInfo: {}를 통해 연결 정보 state를 생성한다.
2. NetInfo를 통해 초기 연결 상태를 파악하고 state에 저장
NetInfo.fetch().then(connectionInfo => {
console.log("Connection type", connectionInfo.type)
console.log("Is connected?", connectionInfo.isConnected)
this.setState(connectionInfo)
})
3. 실시간으로 연결 정보를 파악할 수 있도록 리스너를 추가하여 그 결과를 state에 저장
NetInfo.addEventListener(connectionInfo => {
console.log("Changed Connection type", connectionInfo.type);
console.log("Is connected?", connectionInfo.isConnected);
this.setState(connectionInfo)
});
4. render에서 연결 type을 통해 어떤 연결 모듈을 가지고 있는지 출력하도록 한다.
iOS의 경우 개발중인 데스크탑의 wifi를 해제하면 none으로 연결 정보가 업데이트 되는 것을 확인 할 수 있다.
'React native' 카테고리의 다른 글
크로스 플렛폼 - PanResponder (0) | 2020.01.26 |
---|---|
크로스 플렛폼 - Geolocation (0) | 2020.01.19 |
크로스 플랫폼 - Clipboard API (0) | 2020.01.19 |
크로스 플랫폼 - AsyncStorage (0) | 2020.01.12 |
크로스 플랫폼 - AppState API (0) | 2020.01.12 |