#yyds干货盘点#愚公系列2023年02月 微信小程序-获取WIFI信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#愚公系列2023年02月 微信小程序-获取WIFI信息相关的知识,希望对你有一定的参考价值。

前言

微信小程序货期WIFI信息主要分为以下几个步骤

  • getSystemlnfo:查看平台环境
  • startWifi:启动WiFi模块
  • getWifiList:尝试拉取WiFi列表
  • onGetWifiList:监听WiFi列表到达
  • connectWifi:连接WiFi

一、获取WIFI信息

1.全局配置

app.js配置

"permission": 
  "scope.userLocation": 
    "desc": "位置信息用途说明"
  

2.页面

2.1 wxml

<view class="page-section">
	<view class="btn-area">
		<button bindtap="startToConnect" type="primary">WIFI连接</button>
	</view>
</view>

2.2 js

import connectWifi from ../../lib/connect-wifi
Page(
  async startToConnect() 
    let res = await connectWifi()
    console.log("startToConnect result",res)
  ,
)

3.组件

async function connectWifi() 
  let ssid = 201,
    pass = 123456789
  let sysInfo = wx.getSystemInfoSync()
  let platform = sysInfo.platform
  // devtools/android/ios 
  // ios:iOS 10.0.1
  console.log("platform", platform, sysInfo.system);

  // 只有ios 11以上,及andoird 6以上,才有这样的wifi连接功能
  if (platform == "android") 
    let sysVersion = parseInt(sysInfo.system.substr(8))
    if (sysVersion < 6) 
      return "android版本低"
    
    let res0 = await wx.wxp.getSetting(
      withSubscriptions: false,
    ).catch(err => 
      console.log("err", err);
      return `运行错误:$err`
    )

    if (res0 && !res0.authSetting["scope.userLocation"]) 
      // 如果没有这个权限,先授权
      let authRes = await wx.wxp.authorize(
        scope: scope.userLocation
      ).catch(err => 
        console.log("err", err);
        return `运行错误:$err`
      )

      if (authRes && authRes.errMsg != "authorize:ok") 
        console.log(地理授权失败, authRes.errMsg);
        return android地理授权失败
      
    
   else if (platform == "ios") 
    let sysVersion = parseInt(sysInfo.system.substr(4))
    if (sysVersion < 11) 
      return "ios版本低"
    
    await wx.wxp.showModal(
      title: 请切到系统设置->wifi列表,等待wifi连接成功,
      showCancel: false
    ).catch(err => 
      console.log("err", err);
      return `运行错误:$err`
    )
   else 
    return "平台不支持"
  

  await wx.wxp.startWifi().catch(err => 
    console.log("err", err);
    return `运行错误:$err`
  )
  await wx.wxp.getWifiList().catch(err => 
    console.log("err", err);
    return `运行错误:$err`
  )
  let res = await new Promise((resolve, reject) => 
    wx.onGetWifiList(res => 
      resolve(res)
    )
  )
  if (!res.wifiList.length) return "wifi列表为空"
  console.log("res.wifiList", res.wifiList);

  // var signalStrength = 0;
  var bssid = ;

  for (var i = 0; i < res.wifiList.length; i++) 
    let wifi = res.wifiList[i]
    if (wifi.SSID == ssid) 
      bssid = wifi.BSSID
      break
    
  
  if (!bssid) return 未查询到目标wifi
  let res1 = await wx.wxp.connectWifi(
    SSID: ssid,
    BSSID: bssid,
    password: pass
  ).catch(err => 
    console.log("err", err);
    return `运行错误:$err`
  )
  if (res1) 
    console.log("wifi连接成功");
    return "connectWifi:ok"
  
  return "未知错误"


export default connectWifi

以上是关于#yyds干货盘点#愚公系列2023年02月 微信小程序-获取WIFI信息的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#愚公系列2023年02月 微信小程序-电商项目-商品详情页面的标题及价格功能实现

#yyds干货盘点#愚公系列2023年02月 .NET/C#知识点-程序运行计时的总结

#yyds干货盘点#愚公系列2023年02月 .NET/C#知识点-区块链概念和实现

#yyds干货盘点#愚公系列2023年02月 .NET/C#知识点-List转成字符串的总结

#yyds干货盘点#愚公系列2023年02月 .NET/C#知识点-EF Core性能优化之显示编译

#yyds干货盘点#愚公系列2023年02月 .NET/C#知识点-List对象去重的方法总结