React Native 获取网络状态 NetworkInfo

前端之家收集整理的这篇文章主要介绍了React Native 获取网络状态 NetworkInfo前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

React Native 获取网络状态 NetworkInfo

react-native提供了了一个NetInfo类用来获取和监听网络状态。

属性方法@H_301_6@
  • 1.addEventListener(eventName:ChangeEventName,handler:Function) 静态方法,用设置网络变化事件监听器,同时需要传入回调的处理方法

  • 2.removeEventListener(eventName:ChangeEventName,handler:Function) 静态方法,用于移除网络事件变化监听器

  • 3.fetch() 静态方法 检测当前网络连接状态

  • 4.isConnectionExpensve(callback:(metered:?boolean,error?:string)=>void) 静态方法,检测当前连接的网络是否需要计费

  • 5.isConnected :ObjectExpression 当前网络是否连接的属性

构造工具类@H_301_6@

NetWorkTool.js

/** * Created by eleven on 16/6/3. */

import React,{
    NetInfo
} from 'react-native';

const NOT_NETWORK = "网络不可用,请稍后再试";
const TAG_NETWORK_CHANGE = "NetworkChange";

/*** * 检查网络链接状态 * @param callback */
const checkNetworkState = (callback) =>{
    NetInfo.isConnected.fetch().done(
        (isConnected) => {
            callback(isConnected);
        }
    );
}

/*** * 移除网络状态变化监听 * @param tag * @param handler */
const removeEventListener = (tag,handler) => {
    NetInfo.isConnected.removeEventListener(tag,handler);
}

/*** * 添加网络状态变化监听 * @param tag * @param handler */
const addEventListener = (tag,handler)=>{
    NetInfo.isConnected.addEventListener(tag,handler);
}

export default{
    checkNetworkState,addEventListener,removeEventListener,NOT_NETWORK,TAG_NETWORK_CHANGE
}

使用@H_301_6@

Component.js

//、、、 
import NetWorkTool from '../../utils/NetWorkTool'
//、、、 
handleMethod(isConnected){
       console.log('test',(isConnected ? 'online' : 'offline'));
   }
//、、、
constructor(props) {
    super(props);
    NetWorkTool.checkNetworkState((isConnected)=>{
          if(!isConnected){
                Toast.show(NetWorkTool.NOT_NETWORK);
          }
        });
  }

componentWillMount() {
       NetWorkTool.removeEventListener(NetWorkTool.TAG_NETWORK_CHANGE,this.handleMethod);
   }

componentWillUnmount() {
      NetWorkTool.removeEventListener(NetWorkTool.TAG_NETWORK_CHANGE,this.handleMethod);
      }
//、、、

原文链接:https://www.f2er.com/react/306674.html

猜你在找的React相关文章