React Native-18.React Native 常用API及实践 NetINfo
2016-03-07 15:22
676 查看
没图你说个xx
NetInfo简介
NetInfo 用来获取网络状态。提供的属性方法如下:
- isConnected : 表示网络是否连接
- fetch(): 获取网络状态
- addEvent Li 沙特呢人(eventName,handler):添加事件监听。
- removeEventListener:(eventName,handler):删除事件监听。
其中,网络状态主要有以下几种类型。
- none:离线状态。
- wifi:在线状态。并且通过WiFi或者是iOS 模拟器连接。
- cell: 网络连接。通过3g,WiMax或者LTE进行连接。蜂窝网络。
- unknown:错误情况。网络状态未知。
直接上代码:
老样子,我们封装一个组件:netinfo.js
var React = require('react-native') var { AppRegistry, StyleSheet, View, Text, NetInfo, TouchableOpacity, PixelRatio, } = React; var Netinfo = React.createClass({ getInitialState: function(){ return{ netstate:null } }, componentDidMount: function(){ // NetInfo.addEventListener('change',function(reachability){ // alert(reachability) // }); }, render:function(){ return( <View style= {styles.flex}> <TouchableOpacity style = {styles.borderStyle} onPress = {this.getCurrentNetInfo}> <Text style = {styles.font}> 获取当前网络状态 </Text> </TouchableOpacity> <TouchableOpacity style = {styles.borderStyle} onPress = {this.getCurrentNetState}> <Text style = {styles.font}> 获取当前网络是否连接 </Text> </TouchableOpacity> <TouchableOpacity style = {styles.borderStyle} onPress = {this.reachabilityNetState}> <Text style = {styles.font}> 监听网络是否链接 </Text> </TouchableOpacity> </View> ); }, getCurrentNetInfo: function(){ NetInfo.fetch().done(function(reachability){ alert(reachability); }); }, getCurrentNetState: function(){ NetInfo.isConnected.fetch().done(function(isConnected){ alert(isConnected); }); }, reachabilityNetState: function(){ NetInfo.isConnected.addEventListener('change',function(isConnected){ alert(isConnected); }); }, }); var styles = StyleSheet.create({ flex: { flex: 1, }, borderStyle: { marginRight: 10, marginLeft:10, marginTop:74, alignSelf:'center', borderWidth: 1/PixelRatio.get(), borderRadius: 5, borderColor: '#aaa', }, font: { fontSize:15, color: '#222', } }) module.exports = Netinfo;
在os.index.js中我们这样做:
'use strict'; var React = require('react-native');var Netinfo = require('./iOSFile/netinfo.js'); var { AppRegistry, StyleSheet, Text, View, Image, ScrollView, WebView, NavigatorIOS, AsyncStorage, TouchableOpacity, } = React; var styles = StyleSheet.create({ container : { flex: 1 }, row : { flexDirection: 'row', marginBottom: 10, }, item : { flex: 1, marginLeft:5, borderWidth: 1, borderColor: '#ddd', marginRight: 5, height: 100, }, img: { flex: 1, backgroundColor: 'transparent', }, item_text: { backgroundColor: '#000', opacity:0.7, color:'#fff', height:25, lineHeight:18, textAlign:'center', marginTop:74 }, btn: { backgroundColor: '#ff7200', height: 33, textAlign : 'center', color: '#fff', marginLeft:10, marginRight: 10, lineHeight: 24, marginTop: 40, fontSize: 18, }, list_item : { marginLeft: 5, marginRight: 5, padding:5 , borderWidth: 1, height: 30, borderRadius: 3, borderColor: '#ddd', }, list_item_desc : { flex: 2, fontSize: 15, }, list_item_price: { flex: 1, textAlign: 'right', fontSize: 15, }, clear: { marginTop : 10, backgroundColor: '#fff', color: '#000', borderColor: '#ddd', borderWidth:1, marginLeft: 10, marginRight:10, lineHeight: 24, height:33, fontSize: 18, textAlign: 'center', } }); var wxsPrj = React.createClass({ render: function() { return ( <NavigatorIOS style = {styles.container} initialRoute = { { component:Netinfo, title:'样式列表', barTintColor: '#ddd' } }/> ); } }); AppRegistry.registerComponent('wxsPrj', () => wxsPrj);
相关文章推荐
- ReactJS实用技巧(1):JSX与HTML的那些不同
- 在MAC下配置React-Native开发环境
- react 编写autocomplete实现(非jsx)
- ReactiveCocoa Weak-Strong Dance
- MVVM with ReactiveCocoa
- react jsx 编写autocomplete实现
- [CodeForces 607A]Chain Reaction[DP]
- React 仅仅是你的界限
- 【Android】19.2 ShareActionProvider类—帮你把信息分享出去
- 运行React-Native项目
- 运行React-Native项目
- 在React框架中实现一些AngularJS中ng指令的例子
- react封装二维码
- react native 样式初学~(一)
- React-Native中this的带给大家的困惑
- React组件生命周期
- React概述
- 在React框架中实现一些AngularJS中ng指令的例子
- React 入门实例教程 12个demo
- JavaScript的React框架中的JSX语法学习入门教程