首页 > 编程语言 >#yyds干货盘点#【愚公系列】2023年02月 微信小程序-获取WIFI信息

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

时间:2023-02-02 23:31:08浏览次数:58  
标签:yyds return log err 微信 WIFI let res console

前言

微信小程序货期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,return,log,err,微信,WIFI,let,res,console
From: https://blog.51cto.com/u_15437432/6034025

相关文章

  • Wifi BSSID获取
    代码很简单,通过wifiManager获取wifiinfo,从而获取bssid,publicstaticStringgetWifiSSID(Contextcontext){Stringbssid="";ConnectivityManage......
  • #yyds干货盘点# LeetCode面试题:两数相加
    1.简述:给你两个 非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表......
  • #yyds干货盘点# LeetCode程序员面试金典:幂集
    题目:幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。说明:解集不能包含重复的子集。示例:输入:nums=[1,2,3]输出:[ [3], [1], [2], [1,2,3],......
  • 分享到微信二次跳转问题iOS
    起初,对接的友盟分享到微信好友,出现bug,app——跳到微信——跳回app,无法进行分享后来,去掉友盟,直接调用微信原生分享,出现bug,app——跳到微信——跳回app——跳到微信,能分享但......
  • 微信多开工具,微信消息防撤回、QQ消息防撤回、Tim消息防撤回,不错过每一条消息
    这是一款非常小巧精致的防撤回和微信多开工具,只有130kb的大小,但功能却非常强大。一、软件简介这是一个开源项目,程序源码全部开源,因此这款工具具有极高的安全性,毕竟代码就......
  • 微信小程序-通过绑定事件进行传值
    <viewbindtap="node"data-num="5">点击传值:{{nums}}</view> data:{nums:null,},node(e){console.log(e.currentTarget.dataset.num);varn=e......
  • 微信小程序-获取用户头像信息以及修改用户头像
    这里主要用到button的open-type功能,官网已有说明:给button设置open-type="chooseAvatar",来使bindchooseavatar方法生效,在bindchooseavatar指定的函数中获取用户的头像信......
  • #yyds干货盘点# LeetCode程序员面试金典:魔术索引
    题目:魔术索引。在数组A[0...n-1]中,有所谓的魔术索引,满足条件A[i]=i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1......
  • 关于视频号主页实现一键添加个人微信功能的思路
    ​大家好,我是小悟很多小伙伴私信说想要在视频号里面放置添加个人微信的按钮,但是很遗憾的告诉大家,想要实现这个功能是有条件的,就是需要视频号是企业认证的,个体户或企业都可以......
  • #yyds干货盘点# LeetCode面试题:两数之和
    1.简述:给定一个整数数组nums 和一个整数目标值target,请你在该数组中找出和为目标值target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个......