uniapp获取wifi连接状态

简介: uniapp获取wifi连接状态


当使用Uniapp开发移动应用时,我们经常需要获取设备的连接状态,特别是WiFi连接状态。下面是一个简短的关于在Uniapp中获取WiFi连接状态的博客:

在Uniapp中,要获取设备的WiFi连接状态,我们可以利用uni.getNetworkType接口来实现。uni.getNetworkType接口可以获取当前网络状态,包括WiFi、3G、4G等类型,从而帮助我们判断设备是否连接了WiFi。

下面是一个简单的示例代码:

首先我们需要先获取以下地理位置:

//获取位置
            uni.getSetting({
              success(res) {
                // 请求地理定位权限
                uni.authorize({
                  scope: 'scope.userLocation',
                  success() {
                    // 用户已经同意地理定位权限
                    // 3. 获取地理定位信息
                    uni.getLocation({
                      type: 'gcj02', // 获取的坐标类型
                      success: function(res) {
                      },
                      fail: function(err) {
                        uni.showToast({
                          title: '请打开位置信息并下拉刷新,否则会影响用户体验',
                          icon: 'none'
                        })
                      }
                    });
                  },
                  fail() {
                    uni.showToast({
                      title: '用户拒绝授权地理定位权限',
                      icon: 'none'
                    })
                    uni.showModal({
                      title: '提示',
                      content: '请开启定位权限',
                      success: function(res) {
                        if (res.confirm) {
                          uni.openSetting({
                            success: (
                              authRes
                            ) => {
                              console
                                .log(
                                  authRes
                                  .authSetting
                                );
                            }
                          });
                        } else {
                          uni.navigateBack({
                            delta: 1
                          })
                        }
                      }
                    });
                  }
                })
              }
            })

获取成功之后,再开始检测wifi状态

// 初始化
        uni.startWifi({
          success() {
            console.log(111);
            if (that.platform == 'android') {
              console.log(222);
              // 获取wifi列表
              uni.getWifiList({
                success() {
                  console.log(333);
                  // 获取连接wifi的信息
                  uni.getConnectedWifi({
                    success(res) {
                      console.log(res, 999);
                      that.SSID = res.wifi.SSID
                      console.log(that.wifis, 444);
                      if (that.wifis != res.wifi.SSID && res.wifi
                        .SSID !=
                        '') {
                        that.set_status = false
                      }
                      if (that.wifis == res.wifi.SSID) {
                        that.set_status = true
                      }
                      uni.hideLoading();
                      that.SSID = ''
                      that.mess()
                    },
                    fail() {
                      that.set_status = false
                      that.SSID = ''
                      uni.showToast({
                        title: '获取失败',
                        icon: 'none'
                      })
                      that.mess()
                    }
                  })
                },
                fail() {
                  uni.hideLoading();
                  that.message = '不在打卡范围'
                }
              })
            } else if (that.platform == 'ios') {
              // 获取连接wifi的信息
              uni.getConnectedWifi({
                success(res) {
                  console.log(res, 999);
                  that.SSID = res.wifi.SSID
                  console.log(that.wifis, 444);
                  if (that.wifis != res.wifi.SSID) {
                    that.set_status = false
                  }
                  if (that.wifis == res.wifi.SSID) {
                    that.set_status = true
                  }
                  uni.hideLoading();
                  that.SSID = ''
                  that.mess()
                },
                fail() {
                  that.SSID = ''
                  that.set_status = false
                  that.SSID = ''
                  uni.showToast({
                    title: '获取失败',
                    icon: 'none'
                  })
                  that.mess()
                  uni.hideLoading();
                }
              })
            }
          },
          fail() {
            uni.showToast({
              title: '初始化失败',
              icon: 'none'
            })
          }
        })

这里需要注意的是由于安卓和苹果有些异同,所以要针对于不同手机型号做适配

下一篇文章我会讲出如何实时监测wifi连接状态,也就是说,如果切换wifi了或者关闭/打开了都会执行

相关文章
|
5月前
|
存储 网络安全 Python
WiFi连接树莓派【2月更文挑战第2天】
要通过WiFi连接树莓派并显示其摄像头视频信息,您需要按照以下步骤操作: 1. 确保您的电脑和树莓派已连接到同一个WiFi网络。 2. 安装Python和必要的库:在您的电脑上安装Python 3.6或更高版本,并安装pip(Python包管理器)。然后,通过pip安装以下库: 【2月更文挑战第2天】
63 1
|
安全 数据安全/隐私保护 网络架构
如何查看电脑所有连接过的wifi密码?
如何查看电脑所有连接过的wifi密码?
493 0
|
6天前
|
传感器 数据采集 移动开发
基于STM32的智能手环wifi连接手机APP(下)
基于STM32的智能手环wifi连接手机APP(下)
32 0
|
6天前
|
传感器 存储 编解码
基于STM32的智能手环wifi连接手机APP(上)
基于STM32的智能手环wifi连接手机APP(上)
13 0
|
2月前
|
Ubuntu 网络安全 数据安全/隐私保护
ubuntu server连接wifi教程
本文提供了一个简化Ubuntu Server在Raspberry Pi系统上配置过程的脚本"config_ubuntu_server",包括自动和手动两种方法来设置root权限、SSH配置,并连接WiFi,同时支持无密码SSH访问,适合初学者和高级用户。
66 3
|
5月前
|
Android开发
Android获取当前连接的wifi名称
Android获取当前连接的wifi名称
291 6
|
4月前
|
网络协议
了解AT指令以及STM32F103如何通过ESP8266连接到WiFi
AT指令是一组用于控制调制解调器的命令,最早由Hayes公司为其智能调制解调器开发。如今,AT指令已被广泛应用于各种通信模块中,包括GSM、Bluetooth和WiFi模块。AT指令通常以“AT”开头,后跟特定的命令和参数。通过这些指令,我们可以执行一系列操作,如设置网络参数、发送数据和查询状态等。
184 0
|
4月前
|
数据安全/隐私保护 Windows
windows系统bat批处理 查看当前电脑连接过的wifi名字和wifi密码
windows系统bat批处理 查看当前电脑连接过的wifi名字和wifi密码
263 0
|
5月前
|
Android开发
android连接指定wifi
android连接指定wifi
88 0
|
5月前
|
Java Android开发
Android 9在连接以太网情况下 还能连接WiFi
Android 9在连接以太网情况下 还能连接WiFi
56 0