在react native中,是否有一种获取设备网络状态的方法?例如,我想知道当前设备是在线还是离线。另外,我想检测设备何时联机或脱机,以便向用户显示消息或我需要运行的任何其他进程。
到目前为止,我所能找到的只是向API发送请求,并为catch
设置了fetch
回调,如果没有连接,则catch
回调将运行,这似乎可行,但是我想知道是否有更好的方法来解决这个。
我也想知道设备是否正在使用wifi或LTE连接。
有什么帮助吗?
最佳答案
NetInfo API
看看React Natives NetInfo API。以下示例是从官方文档复制而来的:
const ConnectionInfoCurrent = React.createClass({
getInitialState() {
return {
connectionInfo: null,
};
},
componentDidMount: function() {
NetInfo.addEventListener(
'change',
this._handleConnectionInfoChange
);
NetInfo.fetch().done(
(connectionInfo) => { this.setState({connectionInfo}); }
);
},
componentWillUnmount: function() {
NetInfo.removeEventListener(
'change',
this._handleConnectionInfoChange
);
},
_handleConnectionInfoChange: function(connectionInfo) {
this.setState({
connectionInfo,
});
},
render() {
return (
<View>
<Text>{this.state.connectionInfo}</Text>
</View>
);
}
});