美文网首页
RN iOS网络是否连接bug

RN iOS网络是否连接bug

作者: IDO0 | 来源:发表于2017-11-13 13:58 被阅读0次

    react native 是有判断网路是否连接这个接口的NetInfo。
    可以通过这样来判断:isConnected=true 有网络,反之没有网络。

        data = await NetInfo.isConnected.fetch().then((isConnected) => {
                     console.log('isConnected',isConnected);
                     if(!isConnected){
                         DeviceEventEmitter.emit('data', 'NoNetWork');//跳转到没有网路界面
                         return false;
                     }else{
                         return true;
                     }
                 }).catch((err)=>{
                     console.log('HttpUtil 异常');
                     return false;
                 });
    

    这个接口Android上面没有问题,但是在iOS上面有bug。
    如果是第一次网络请求,收集有网络而服务器不可以连接,这个接口返回的isConnected 依然是false,手机没有网络。
    解决办法:
    这个错误是在rn0.22甚至更早就有了,官方一直在改还是没有修改好。所以直接弃用这个接口。可以通过如下方式判断手机是否有网络。

     isNet = await fetch("https://www.baidu.com");
                if(isNet.status=200){
                    console.log('有网络');
                    HttpRequest.NetFlag = true;
                    return true;
                }else{
                    console.log('没有网络');
                    DeviceEventEmitter.emit('data', 'NoNetWork');
                    return false;
                }
    

    自己使用react-native-fetch-blob封装的Http工具类。
    get,post, 图片上传, 是否有网络判断 ,请求超时 ,数据解析等错误通过toast弹出https://github.com/wuyunqiang/ReactNativeUtil/issues/5

    相关文章

      网友评论

          本文标题:RN iOS网络是否连接bug

          本文链接:https://www.haomeiwen.com/subject/iohzmxtx.html