React-Native 检测是否处于wifi状态

1.导入NetInfo

componentWillMount() {
        NetInfo.fetch().done((status)=> {
            console.log('Status:'+status);
            if((status !== 'wifi'  )&& wifiTip ){
                Alert.alert('网络检测', '请网络是否wifi状态,注意您的流量哦', [
                    {
                        text: '不再提示', onPress: ()=> {
                        wifiTip = false;
                    }},
                    {
                        text: '好的', onPress: ()=> {
                            wifiTip = true;
                        }
                    }
                ])
            }
        });
        //监听网络状态改变
        NetInfo.addEventListener('change', this.handleConnectivityChange);
}
//监听网络状态改变
    handleConnectivityChange(status) {
        console.log('status change:' + status);
        if(status === 'wifi' ){
            Alert.alert('网络检测', '请网络是否wifi状态,注意您的流量哦', [
                {
                    text: '好的', onPress: ()=> {
                    wifiTip = true;
                }
                }
            ])
        }

    }
componentWillUnmount() {
       
        //取消网络状态监听
        NetInfo.removeEventListener('change', this.handleConnectivityChange);
    }

官方有个ios的unknown的bug,我是这样解决的:

//检测网络连接信息
        NetInfo.fetch().done((connectionInfo) => {
            if(connectionInfo!== 'none' && connectionInfo!== 'unknown'){
                if(connectionInfo != 'WIFI'&& connectionInfo != 'WIFI'  ){
                    // alert('移动')
                    global.constants.netInfoIsWIFI = false
                }
            }else{
                // alert('WIFI')
                global.constants.netInfoIsWIFI = true
            }
        });

        //监听网络变化事件
        NetInfo.addEventListener('change', (networkType) => {
            if(networkType!== 'none' && networkType!== 'unknown'){
                if(networkType != 'WIFI' && networkType != 'wifi' ){
                    // alert('移动2')
                    global.constants.netInfoIsWIFI = false
                }
            }else{
                // alert('WIFI2')
                global.constants.netInfoIsWIFI = true
            }
        })

你可能感兴趣的:(React-Native 检测是否处于wifi状态)