我需要在应用程序背景时检查Internet连接
答案 0 :(得分:8)
import { NetInfo } from 'react-native';
NetInfo.isConnected.fetch().then(isConnected => {
if(isConnected)
{
console.log('Internet is connected');
}
})
以上代码足以检查是否存在有效的网络连接
答案 1 :(得分:3)
NetInfo API用于检查互联网连接。
例如:NetInfo.isConnected.addEventListener('change', this._handleConnectionChange);
请参阅https://facebook.github.io/react-native/docs/netinfo.html了解详情。
答案 2 :(得分:0)
有时您已连接到Internet,但未在线。并且NetInfo无法检测到这种情况,并且以下代码的响应始终为真
NetInfo.isConnected.fetch().then(res=>{
if(res) {
setIsConnected()
}
})
这使我的应用程序进入无限循环并请求服务器,但没有响应。所以我通过将请求发送到我的一个api(不需要授权)来解决了这个问题,如果它有响应,我会将连接性设置为true。
请参见以下代码:
NetInfo.isConnected.fetch().then(res=>{
if(res) {
this.checkConnectivity()
}
})
,然后使功能checkConnectivity如下所示:
checkConnectivity(){
return (
Promise.resolve(
getCategoriesApi().then(res=>{
// console.log(res.data,"----------------is gettting info")
setIsConnected()
}).catch(err=>{
// console.log(err.response,"-----------------not getting info")
})
)
)
}
getCategoriesApi在哪里:
Promise.resolve(Axios.get('my-url",mydata,myHeader()))
它现在可以正常工作。
希望它能帮助处于类似情况的人。