当前位置: 首页 > news >正文

使用uniapp实现小程序获取wifi并连接

Wi-Fi功能模块

App平台由 uni ext api 实现,需下载插件:uni-WiFi 链接:https://ext.dcloud.net.cn/plugin?id=10337

uni ext api 需 HBuilderX 3.6.8+

iOS平台获取Wi-Fi信息需要开启“Access WiFi information”能力登录苹果开发者网站,在“Certificates, Identifiers & Profiles”页面选择“Identifiers”中选择对应的App ID,确保开启“Access WiFi information”,保存后重新生成profile文件。

iOS平台iOS13及以上系统,获取当前连接的Wi-Fi信息需要先获取系统定位权限,因此在iOS13及以上系统使用此接口时,会触发定位权限申请的弹窗。

uni.startWifi(OBJECT)
初始化Wi-Fi模块
在这里插入图片描述

uni.stopWifi(OBJECT)
关闭 Wi-Fi 模块

OBJECT 参数说明
在这里插入图片描述

uni.getConnectedWifi(OBJECT)
获取已连接的 Wi-Fi 信息

OBJECT 参数说明

在这里插入图片描述

<template><view class="page"><view class="gc-box"><button @click="getConnectedWifi">获取当前连接wifi</button></view><view class="gc-box"><button @click="getWifiList">获取周围 WiFi</button></view><view class="gc-box">已连接:{{ connectedWifi.SSID }} </view><view class="gc-box">默认连接密码:<input v-model="password" /> </view><view class="gc-box"><view v-for="item in wifiList" :key="item.BSSID" class="item"><text class="title">{{ item.SSID }}</text><button class="btn" @click="connectWifi(item)">连接</button></view></view></view>
</template><script>
export default {data() {return {wifiList: [], // 存储WiFi列表connectedWifi: { SSID: '' }, // 存储当前已连接wifipassword: '', // 密码}},onLoad() {this.onWifiConnected()this.onGetWifiList()},methods: {/** 启动wifi */startWifi() {return new Promise((resolve, reject) => {uni.startWifi({success: (res) => {console.log('启动wifi 成功', res)resolve(true)},fail: (err) => {console.error('启动wifi 失败', err)uni.showModal({ content: err.errMsg, showCancel: false })reject(new Error(err))},})})},/** 获取wifi列表, ios和android 各不相同,具体看顶部资料 */async getWifiList() {const hasStart = await this.startWifi()if (hasStart !== true) returnuni.getWifiList({success: (res1) => {console.log('获取wifi列表命令发送 成功', res1)},fail: (err) => {console.error('获取wifi列表 失败', err)uni.showModal({ content: err.errMsg, showCancel: false })},})},/** 监听获取wifi列表 */onGetWifiList() {uni.onGetWifiList((res) => {console.log('监听获取wifi列表', res)const { wifiList } = res// 过滤同名WiFi信号const filterList = wifiList.reduce((result, item) => {const index = result.findIndex((v) => {return v.SSID === item.SSID})if (index < 0) {result.push(item)} else if (item.signalStrength > result[index].signalStrength) {result[index] = item}return result}, [])console.log('过滤同名后', filterList)this.wifiList = filterList})},/** 连接某个 Wi-Fi */connectWifi(wifi) {console.log('选中的wifi:', wifi)this.connectedWifi = { SSID: '' }uni.connectWifi({SSID: wifi.SSID,password: this.password,success: (res) => {console.log('wifi连接命令发送 成功:', res)},fail: (err) => {console.error('wifi连接 失败:', err)uni.showModal({ content: err.errMsg, showCancel: false })},})},/**  监听wifi连接状态 */onWifiConnected() {uni.onWifiConnected((res) => {console.log('监听wifi连接状态', res)this.connectedWifi = res.wifi})},/** 获取当前连接的wifi */async getConnectedWifi() {this.connectedWifi = { SSID: '' }const hasStart = await this.startWifi()if (hasStart !== true) returnuni.getConnectedWifi({success: (res) => {console.log('获取当前连接的wifi 成功', res)this.connectedWifi = res.wifi // 当前连接的wifi的信息// this.connectedWifiSSID = res.wifi.SSID},fail: (err) => {console.error('获取当前连接的wifi 失败:', err)uni.showModal({ content: err.errMsg, showCancel: false })},})},},
}
</script><style>
.item {display: flex;flex-direction: row;align-items: center;justify-content: space-between;border-bottom: 2rpx solid #ddd;padding: 16rpx 0;
}
.item .title {flex: 1;
}
input {border-bottom: 2rpx solid #ddd;
}
</style>

在这里插入图片描述
作者介绍

一个热爱编程,无背景最底层的程序员。没人领路遇到过很多坑,希望能分享一下经验,让后续的小伙伴们少走弯路!希望大家可以多多支持关注!您的肯定是我最大的动力。
在这里插入图片描述

相关文章:

使用uniapp实现小程序获取wifi并连接

Wi-Fi功能模块 App平台由 uni ext api 实现&#xff0c;需下载插件&#xff1a;uni-WiFi 链接&#xff1a;https://ext.dcloud.net.cn/plugin?id10337 uni ext api 需 HBuilderX 3.6.8 iOS平台获取Wi-Fi信息需要开启“Access WiFi information”能力登录苹果开发者网站&…...

回忆杀之手搓当年搓过的Transformer

整体代码 import mathimport paddle import paddle.nn as nn import paddle.nn.functional as Fclass MaskMultiHeadAttention(nn.Layer):def __init__(self, hidden_size, num_heads):super(MaskMultiHeadAttention, self).__init__()assert hidden_size % num_heads 0, &qu…...

【AR】使用深度API实现虚实遮挡

遮挡效果 本段描述摘自 https://developers.google.cn/ar/develop/depth 遮挡是深度API的应用之一。 遮挡&#xff08;即准确渲染虚拟物体在现实物体后面&#xff09;对于沉浸式 AR 体验至关重要。 参考下图&#xff0c;假设场景中有一个Andy&#xff0c;用户可能需要放置在包含…...

python-pytorch实现skip-gram 0.5.001

python-pytorch实现skip-gram 0.5.000 数据加载、切词准备训练数据准备模型和参数训练保存模型加载模型简单预测获取词向量画一个词向量的分布图使用词向量计算相似度参考数据加载、切词 按照链接https://blog.csdn.net/m0_60688978/article/details/137538274操作后,可以获得…...

C语言:约瑟夫环问题详解

前言 哈喽&#xff0c;宝子们&#xff01;本期为大家带来一道C语言循环链表的经典算法题&#xff08;约瑟夫环&#xff09;。 目录 1.什么是约瑟夫环2.解决方案思路3.创建链表头结点4.创建循环链表5.删除链表6.完整代码实现 1.什么是约瑟夫环 据说著名历史学家Josephus有过以下…...

【刷题篇】回溯算法(二)

文章目录 1、求根节点到叶节点数字之和2、二叉树剪枝3、验证二叉搜索树4、二叉搜索树中第K小的元素5、二叉树的所有路径 1、求根节点到叶节点数字之和 给你一个二叉树的根节点 root &#xff0c;树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表…...

Windows系统本地部署Jupyter Notebook并实现公网访问编辑笔记

文章目录 1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下载安装2.2 Jupyter Notebook的配置2.3 Cpolar下载安装 3.Cpolar端口设置3.1 Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 在数据分析工作中&#xff0c;使用最多的无疑就是各种函数、图表、…...

自动化运维(二十七)Ansible 实战Shell 插件和模块工具

Ansible 支持多种类型的插件&#xff0c;这些插件可以帮助你扩展和定制 Ansible 的功能。每种插件类型都有其特定的用途和应用场景。今天我们一起学习Shell 插件和模块工具。 一、 Shell 插件 Ansible shell 插件决定了 Ansible 如何在远程系统上执行命令。这些插件非常关键&a…...

Jenkins使用-绑定域控与用户授权

一、Jenkins安装完成后&#xff0c;企业中使用&#xff0c;首先需要绑定域控以方便管理。 操作方法&#xff1a; 1、备份配置文件&#xff0c;防止域控绑定错误或授权策略选择不对&#xff0c;造成没办法登录&#xff0c;或登录后没有权限操作。 [roottest jenkins]# mkdir ba…...

【前端】es-drager 图片同比缩放 缩放比 只修改宽 只修改高

【前端】es-drager 图片同比缩放 缩放比 ES Drager 拖拽组件 (vangleer.github.io) 核心代码 //初始宽 let width ref(108)//初始高 let height ref(72)//以下两个变量 用来区分是单独的修改宽 还是高 或者是同比 //缩放开始时的宽 let oldWidth 0 //缩放开始时的高 let o…...

蓝桥杯第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 A 组题解

1.幸运数 题目链接&#xff1a;0幸运数 - 蓝桥云课 (lanqiao.cn) #include<bits/stdc.h> using namespace std; bool deng(string& num){int n num.size();int qian 0,hou 0;for(int i0;i<n/2;i) qian (num[i]-0);for(int in/2;i<n;i) hou (num[i]-0);r…...

eclipse .project

.project <?xml version"1.0" encoding"UTF-8"?> <projectDescription> <name>scrm-web</name> <comment></comment> <projects> </projects> <buildSpec> <buil…...

react的闭包陷阱

React 的闭包陷阱是指在使用 React Hooks 时&#xff0c;由于闭包特性导致在某些函数或异步操作中无法正确访问到更新后状态或 prop 的值&#xff0c;而仍旧使用了旧值。下面通过几个代码示例来具体说明闭包陷阱的几种常见情形&#xff1a; 示例 1: useState 闭包陷阱 import…...

神经网络解决回归问题(更新ing)

神经网络应用于回归问题 优势是什么&#xff1f;&#xff1f;&#xff1f;生成数据集&#xff1a;通用神经网络拟合函数调整不同参数对比结果初始代码结果调整神经网络结构调整激活函数调整迭代次数增加早停法变量归一化处理正则化系数调整学习率调整 总结ingfnn.py进行计算&am…...

【小红书校招场景题】12306抢票系统

1 坐过高铁吧&#xff0c;有抢过票吗。你说说抢票系统对于后端开发人员而言会有哪些情况&#xff1f; 对于后端开发人员来说&#xff0c;开发和维护一个高铁抢票系统&#xff08;如中国的12306&#xff09;会面临一系列的挑战和情况。这些挑战主要涉及系统的性能、稳定性、数据…...

Spring(三)

1. Spring单例Bean是不是线程安全的? Spring单例Bean默认并不是线程安全的。由于多个线程可能访问同一份Bean实例&#xff0c;当Bean的内部包含了可变状态&#xff08;mutable state&#xff09;即有可修改的成员变量时&#xff0c;就可能出现线程安全问题。Spring容器不会自动…...

使用element-plus中的表单验证

标签页代码如下&#xff1a; // 注意&#xff1a;el-form中的数据绑定不可以用v-model&#xff0c;要使用:model <el-form ref"ruleFormRef" :rules"rules" :model"userTemp" label-width"80px"><el-row :gutter"20&qu…...

flinksql

Flink SQL 是 Apache Flink 项目中的一个重要组成部分,它允许开发者使用标准的 SQL 语言来处理流数据和批处理数据。Flink SQL 提供了一种声明式的编程范式,使得用户能够以一种简洁、高效且易于理解的方式来表达复杂的数据处理逻辑。 ### 背景 Flink SQL 的设计初衷是为了简…...

Dockerfile中 CMD和ENTRYPOINT的区别

在 Dockerfile 中&#xff0c;CMD 和 ENTRYPOINT 都用于指定容器启动时要执行的命令。它们之间的主要区别是&#xff1a; - CMD 用于定义容器启动时要执行的命令和参数&#xff0c;它设置的值可以被 Dockerfile 中的后续指令覆盖&#xff0c;包括在运行容器时传递的参数。如果…...

【TC3xx芯片】TC3xx芯片的总线内存保护

前言 广义上的内存保护,包括<<【TC3xx芯片】TC3xx芯片MPU介绍>>一文介绍的MPU(常规狭义上的内存保护),<<【TC3xx芯片】TC3xx芯片的Endinit功能详解>>一文中介绍的寄存器的EndInit保护,<<【TC3xx芯片】TC3xx芯片ACCEN寄存器保护详解>>一…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略&#xff08;地理位置/文件&#xff09; 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型&#xff0c;核心实现方式&#xff1a; 标准消息类型&#xff1a;直接使用 SDK 内置类型&#xff08;文件、图片等&#xff09;自…...