react-native获取WIFI列表

话不多说直接上图在这里插入图片描述
因为是自己所在物联网部门做的智能货架项目,所以就需要用到react-native来获取当前手机所连接的WIFI以及当前手机所能搜到的WIFI列表。

在写这个功能中遇到的一些问题。
使用的包是react-native-wifi-reborn
在这里插入图片描述

     //想要获取WIFI列表就需要添加这个定位权限,就离谱
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    

在这里插入图片描述
不过这个权限好像会默认就加上,仅限Android,IOS的话目前还不是很清楚
在这里插入图片描述
这边因为权限发生改动就需要重新下载安装调试包,CMD执行 npx react-native run-android命令。

下面是拿当前手机端WIFI信息,以及WIFI列表,不过目前只支持Android,不支持IOS端的APP

import { PermissionsAndroid } from 'react-native';
  async componentDidMount() {
    const granted = await PermissionsAndroid.request(
      PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
      {
        title: '获取WIFI信息',
        message: '配网需要先获取WIFI信息授权',
        buttonNegative: '拒绝',
        buttonPositive: '同意',
      },
    );
    if (granted === PermissionsAndroid.RESULTS.GRANTED) {
    //这句代码就是拿到手机所连接的WIFI,返回的一个Promise对象
      WifiManager.getCurrentWifiSSID().then(
        ssid => {
            //这句代码就是拿到手机的WIFI列表,返回的一个Array的Promise对象
          WifiManager.loadWifiList().then((wifiList) => {
            wifiList.forEach((value) => {
              if (value.SSID == ssid) {
              //设备目前只能连接2.4GHz的WIFI,因此需要判断一下
                if (value.frequency > 4900) {
                  Modal.alert("提示", "当前连接WIFI为5G,请连接2.4G的WIFI", [{ text: '确定', onPress: () => { global.tools.goBack() } }]);
                } else {
                  this.setState({ wifiName: ssid })
                }
                return false;
              }
            })
          });
        },
        () => { Modal.alert("提示", "WIFI未连接,无法配网", [{ text: '确定', onPress: () => { global.tools.goBack() } }]) }
      );
    } else {
      Modal.alert("提示", "未授权,无法配网", [{ text: '确定', onPress: () => { global.tools.goBack() } }]);
    }
  }

代码弄好之后,再进去就会有请求获取权限的,不同意就按照代码描述,弹出Modal弹层,然后返回上一个页面
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值