赞
踩
当使用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了或者关闭/打开了都会执行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。