React Native 中的 NetInfo 模块的 isConnectionExpensive() 方法

返回上一级

React Native 中的 NetInfo 模块的 isConnectionExpensive() 仅 Android 可用,用于判断当前活动的连接是否计费。

注意: 仅 Android 平台可用

那么,什么样的网络连接才会被判定为 计费

  • 通过移动数据网络
  • 通过基于移动数据网络所创建的 wifi 热点
  • 大量消耗电池

大量消耗电池 也会被判定为 计费,这就有点迷思了...

Android

要在 Android 上获取联网状态,还需要在 AndroidManifest.xml 中添加如下权限请求

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

语法

NetInfo.isConnectionExpensive()
.then(isConnectionExpensive => {
  console.log('Connection is ' + (isConnectionExpensive ? 'Expensive' : 'Not Expensive'));
})
.catch(error => {
  console.error(error);
});

导入模块

import { NetInfo } from 'react-native'

或者

import NetInfo from "@react-native-community/netinfo";

方法说明

原型 返回值 平台 说明
static isConnectionExpensive() Promise Android 判断当前活动的连接是否计费

范例

下面的范例,使用 NetInfo 模块的 isConnectionExpensive() 方法判断当前活动的连接是否计费

注意: 仅 Android 平台可用

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

export default class App extends Component{

  constructor(props) {
    super(props)
    this.state = {
      isConnectionExpensive: 'noexpensive'
    }

    var that = this;
    NetInfo.isConnectionExpensive()
    .then(isConnectionExpensive => {
      that.setState({isConnectionExpensive: isConnectionExpensive ? 'expensive' : 'noexpensive'})
    })
    .catch(error => {
      console.error(error);
      that.setState({isConnectionExpensive:'noexpensive'})

    });
  }

  render() {

    const {isConnectionExpensive} = this.state

    return (
      <View>
          <Text>当前的网络状态是 {isConnectionExpensive == 'noexpensive' ? '免费网络' : '计费网络' } </Text>
          <Text>简单教程简单编程 (https://www.twle.cn)</Text>
      </View>
    );
  }
}

返回上一级

React Native 中文文档

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2018 简单教程 twle.cn All Rights Reserved.