RN iOS網絡是否連接bug

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章