react-native 获取网络状态
来源:互联网 发布:微信扫二维码抽奖软件 编辑:程序博客网 时间:2024/06/05 09:11
ReactNative 中有 个模块NetInfo,可以获取设备的联网或者离线状态。
有如下几个方法:
//获知设备联网或离线的状态信息NetInfo.fetch().done((reach) => { // alert(reach);});这个reach为获取到的网络状态,有如下字段:
IOS
以异步的方式判断设备是否联网,以及是否使用了移动数据网络。
none
- 设备处于离线状态。wifi
- 设备处于联网状态且通过wifi链接,或者是一个iOS的模拟器。cell
- 设备是通过Edge、3G、WiMax或是LTE网络联网的。unknown
- 发生错误,网络状况不可知
Android
请求网络信息需要先在应用的AndroidManifest.xml
文件中添加如下权限字段:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Android的联网类型:
NONE
- 设备处于离线状态BLUETOOTH
- 蓝牙数据连接DUMMY
- 模拟数据连接ETHERNET
- 以太网数据连接MOBILE
- 移动网络数据连接MOBILE_DUN
- 拨号移动网络数据连接MOBILE_HIPRI
- 高优先级移动网络数据连接MOBILE_MMS
- 彩信移动网络数据连接MOBILE_SUPL
- 安全用户面定位(SUPL)数据连接VPN
- 虚拟网络连接。需要Android5.0以上WIFI
- WIFI数据连接WIMAX
- WiMAX数据连接UNKNOWN
- 未知数据连接
其他的连接状态已被Android API隐藏,但可以在需要时使用。
因为平台不同导致大小写判断不一致,可以采用如下方式来写:NetInfo.fetch().done((status) => { if (status !== 'none' || status !== 'NONE') { this._getNetData(); } else { this.refs.toast.show('网络异常', DURATION.LENGTH_LONG); }})或者 用方法转换大小写统一判断:
NetInfo.fetch().done((status) => { if (status.toLowerCase() !== 'none') { this._getNetData(); } else { this.refs.toast.show('网络异常', DURATION.LENGTH_LONG); }})
toLowCase(),toUpperCase()分别为将字符串转换为小写或大写,使用方式为:
String.toLowCase(), 返回一个字符串。
还有另一种方式:
//检查网络是否链接 返回true/faseNetInfo.isConnected.fetch().done((iscon) => { alert(iscon);})以及只支持安卓平台的:
isConnectionExpensive
此方法仅Android可用。用于判断当前活动的连接是否计费。如果当前连接是通过移动数据网络,或者通过基于移动数据网络所创建的wifi热点,都有可能被判定为计费的数据连接。
NetInfo.isConnectionExpensive((isConnectionExpensive) => { console.log('Connection is ' + (isConnectionExpensive ? 'Expensive' : 'Not Expensive'));});
最后介绍一个监听网络状态变化的:
//监听网络变化状态NetInfo.isConnected.addEventListener('isCon', (a) => { // alert(a);});
每当网络状态变化的时候,都会触发那个回调方法。 参数就是返回的网络状态,
阅读全文
1 0
- [React Native]获取网络状态
- react-native 获取网络状态
- React Native 获取网络状态 NetworkInfo
- react native 判断网络状态
- React Native网络状态解析及封装
- React-native学习过程 三 通过网络获取数据
- React Native 网络获取数据后,listView显示数据
- react-native- 网络访问
- React Native网络请求
- React Native 网络请求
- React Native 属性.样式.状态
- React Native 之State状态
- React-Native中网络请求
- React-native fetch请求网络
- react native 学习笔记----网络
- react native 学习笔记----网络
- React Native Fetch网络请求
- 手把手教React Native实战之44API学习-网络状态与数据交互
- Java类及其常用方法(八)---Date
- 虚函数的定义以及作用
- JavaIO简单摘要(一)
- SQLServer备份为多个文件
- form表单文件上传方法
- react-native 获取网络状态
- storm的消息格式分析
- 如何实现一个高效的队列
- 实例3-1 树的同构
- jmeter 断言(检查点)
- AngularJS 中的Scope(作用域)
- SQLServer列转行
- 前端之怎么切片
- 关于msp