1ef714860S猫头猫import NetInfo from '@react-native-community/netinfo'; 2ef714860S猫头猫 3ef714860S猫头猫let networkState: 'Offline' | 'Wifi' | 'Cellular'; 4ef714860S猫头猫 5ef714860S猫头猫function getState() { 6ef714860S猫头猫 return networkState; 7ef714860S猫头猫} 8ef714860S猫头猫 9ef714860S猫头猫const isOffline = () => networkState === 'Offline'; 10ef714860S猫头猫 11ef714860S猫头猫const isWifi = () => networkState === 'Wifi'; 12ef714860S猫头猫 13ef714860S猫头猫const isCellular = () => networkState === 'Cellular'; 14ef714860S猫头猫 15ef714860S猫头猫const mapState = (state: any) => { 16ef714860S猫头猫 if (state.type === 'none') { 17ef714860S猫头猫 networkState = 'Offline'; 18ef714860S猫头猫 } else if (state.type === 'wifi') { 19*b882a19dS猫头猫 networkState = 'Wifi'; 20ef714860S猫头猫 } else { 21*b882a19dS猫头猫 networkState = 'Cellular'; 22ef714860S猫头猫 } 23ef714860S猫头猫}; 24ef714860S猫头猫 25ef714860S猫头猫async function setup() { 26*b882a19dS猫头猫 try { 27ef714860S猫头猫 const state = await NetInfo.fetch(); 28ef714860S猫头猫 mapState(state); 29*b882a19dS猫头猫 } catch (e) {} 30ef714860S猫头猫 31ef714860S猫头猫 NetInfo.addEventListener(state => { 32ef714860S猫头猫 mapState(state); 33ef714860S猫头猫 }); 34ef714860S猫头猫} 35ef714860S猫头猫 36ef714860S猫头猫const Network = { 37ef714860S猫头猫 setup, 38ef714860S猫头猫 getState, 39ef714860S猫头猫 isOffline, 40ef714860S猫头猫 isWifi, 41ef714860S猫头猫 isCellular, 42ef714860S猫头猫}; 43ef714860S猫头猫 44ef714860S猫头猫export default Network; 45