reachabilityIOS

APIs 网络信息

更新日期: 2021-01-30 分享
复制链接
新浪微博
QQ 好友

扫一扫分享

    NetInfo.reachabilityIOS.fetch().done((reach) => {

  console.log('Initial: ' + reach);
});
function handleFirstReachabilityChange(reach) {
  console.log('First change: ' + reach);
  NetInfo.reachabilityIOS.removeEventListener(
    'change',
    handleFirstReachabilityChange
  );
}
NetInfo.reachabilityIOS.addEventListener(
  'change',
  handleFirstReachabilityChange
);</code></pre><pre><code>    NetInfo.isConnected.fetch().done((isConnected) =&gt; {
  console.log(&#39;First, is &#39; + (isConnected ? &#39;online&#39; : &#39;offline&#39;));
});
function handleFirstConnectivityChange(isConnected) {
  console.log(&#39;Then, is &#39; + (isConnected ? &#39;online&#39; : &#39;offline&#39;));
  NetInfo.isConnected.removeEventListener(
    &#39;change&#39;,
    handleFirstConnectivityChange
  );
}
NetInfo.isConnected.addEventListener(
  &#39;change&#39;,
  handleFirstConnectivityChange
);

    ‘use strict’;

var react = require(&#39;react-native&#39;);
var {
  NetInfo,
  Text,
  View
} = React;
var ReachabilitySubscription = React.createClass({
  getInitialState() {
    return {
      reachabilityHistory: [],
    };
  },
  componentDidMount: function() {
    NetInfo.reachabilityIOS.addEventListener(
      &#39;change&#39;,
      this._handleReachabilityChange
    );
  },
  componentWillUnmount: function() {
    NetInfo.reachabilityIOS.removeEventListener(
      &#39;change&#39;,
      this._handleReachabilityChange
    );
  },
  _handleReachabilityChange: function(reachability) {
    var reachabilityHistory = this.state.reachabilityHistory.slice();
    reachabilityHistory.push(reachability);
    this.setState({
      reachabilityHistory,
    });
  },
  render() {
    return (
      &lt;View&gt;
        &lt;Text&gt;{JSON.stringify(this.state.reachabilityHistory)}&lt;/Text&gt;
      &lt;/View&gt;
    );
  }
});
var ReachabilityCurrent = React.createClass({
  getInitialState() {
    return {
      reachability: null,
    };
  },
  componentDidMount: function() {
    NetInfo.reachabilityIOS.addEventListener(
      &#39;change&#39;,
      this._handleReachabilityChange
    );
    NetInfo.reachabilityIOS.fetch().done(
      (reachability) =&gt; { this.setState({reachability}); }
    );
  },
  componentWillUnmount: function() {
    NetInfo.reachabilityIOS.removeEventListener(
      &#39;change&#39;,
      this._handleReachabilityChange
    );
  },
  _handleReachabilityChange: function(reachability) {
    this.setState({
      reachability,
    });
  },
  render() {
    return (
      &lt;View&gt;
        &lt;Text&gt;{this.state.reachability}&lt;/Text&gt;
      &lt;/View&gt;
    );
  }
});
var IsConnected = React.createClass({
  getInitialState() {
    return {
      isConnected: null,
    };
  },
  componentDidMount: function() {
    NetInfo.isConnected.addEventListener(
      &#39;change&#39;,
      this._handleConnectivityChange
    );
    NetInfo.isConnected.fetch().done(
      (isConnected) =&gt; { this.setState({isConnected}); }
    );
  },
  componentWillUnmount: function() {
    NetInfo.isConnected.removeEventListener(
      &#39;change&#39;,
      this._handleConnectivityChange
    );
  },
  _handleConnectivityChange: function(isConnected) {
    this.setState({
      isConnected,
    });
  },
  render() {
    return (
      &lt;View&gt;
        &lt;Text&gt;{this.state.isConnected ? &#39;Online&#39; : &#39;Offline&#39;}&lt;/Text&gt;
      &lt;/View&gt;
    );
  }
});
exports.title = &#39;NetInfo&#39;;
exports.description = &#39;Monitor network status&#39;;
exports.examples = [
  {
    title: &#39;NetInfo.isConnected&#39;,
    description: &#39;Asyncronously load and observe connectivity&#39;,
    render(): ReactElement { return &lt;IsConnected /&gt;; }
  },
  {
    title: &#39;NetInfo.reachabilityIOS&#39;,
    description: &#39;Asyncronously load and observe iOS reachability&#39;,
    render(): ReactElement { return &lt;ReachabilityCurrent /&gt;; }
  },
  {
    title: &#39;NetInfo.reachabilityIOS&#39;,
    description: &#39;Observed updates to iOS reachability&#39;,
    render(): ReactElement { return &lt;ReachabilitySubscription /&gt;; }
  },
];</code></pre> <div aria-hidden="true" data-nosnippet="" data-v-381fd33a="">      </div> <div aria-hidden="true" data-nosnippet="" data-v-381fd33a="">      </div>