uniapp直接连接wifi(含有ios和安卓的注意事项)

前言

小程序中直接连接wifi-----微信小程序

代码

启动

javascript 复制代码
        //启动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列表

javascript 复制代码
    /** 获取wifi列表, ios和android 各不相同,具体看顶部资料 */
			async getWifiList() {
				const hasStart = await this.startWifi()
				if (hasStart !== true) return
				uni.getWifiList({
					success: (res1) => {
						console.log('获取wifi列表命令发送 成功', res1)
						this.getLianjie() //调用方法,进行链接
					},
					fail: (err) => {
						console.error('获取wifi列表 失败', err)
						uni.showModal({
							content: err.errMsg,
							showCancel: false
						})
					},
				})
			},

连接wifi

javascript 复制代码
        getLianjie() {
				uni.connectWifi({
					SSID: this.wirelessName,//这个就是无线网的名称
					password: this.wirelessPassword,//这个是无线网的密码
					forceNewApi:true, //这个是安卓端,必须要添加的东西,否则会连接失败
					success: (res) => {
						console.log('wifi 成功:', res)
						this.$uni.gettitle(res.errMsg)//封装的全局方法
					},
					fail: (err) => {
						console.error('wifi连接 失败:', err)
						uni.showModal({
							content: err.errMsg,
							showCancel: false
						})
					},
				})
			},

完整代码

javascript 复制代码
	//启动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) return
				uni.getWifiList({
					success: (res1) => {
						console.log('获取wifi列表命令发送 成功', res1)
						this.getLianjie()
					},
					fail: (err) => {
						console.error('获取wifi列表 失败', err)
						uni.showModal({
							content: err.errMsg,
							showCancel: false
						})
					},
				})
			},
			//链接
			getLianjie() {
				uni.connectWifi({
					SSID: this.wirelessName,
					password: this.wirelessPassword,
					forceNewApi:true,
					success: (res) => {
						console.log('wifi 成功:', res)
						this.$uni.gettitle(res.errMsg)
					},
					fail: (err) => {
						console.error('wifi连接 失败:', err)
						uni.showModal({
							content: err.errMsg,
							showCancel: false
						})
					},
				})
			},

注意事项

连接wifi的时候:forceNewApi:true, //这个是安卓端,必须要添加的东西,否则会连接失败,

ios需要跳转到设置打开WiFi的页面,否则也会连接失败

在使用这个方法的时候,一定要打开手机的wifi,否则会失败

安卓端,需要在manifest.json的源码视图中加上一句代码

安卓端

否则好像不能使用定位 功能!

结束语

欢迎指教,点个赞啦!

相关推荐
Kakarotto14 分钟前
Canvas 直线点击事件处理优化
javascript·vue.js·canvas
顺遂14 分钟前
基于Rokid CXR-M SDK的引导式作业辅导系统设计与实现
前端
代码搬运媛14 分钟前
Generator 迭代器协议 & co 库底层原理+实战
前端
前端拿破轮16 分钟前
从0到1搭建个人网站(三):用 Cloudflare R2 + PicGo 搭建高速图床
前端·后端·面试
功能啥都不会19 分钟前
PM2 使用指南 - 踩坑记录
前端
HelloReader21 分钟前
React 中 useState、useEffect、useRef 的区别与使用场景详解,终于有人讲明白了
前端
兆子龙22 分钟前
CSS 里的「if」:@media、@supports 与即将到来的 @when/@else
前端
踩着两条虫22 分钟前
AI 智能体如何重构开发工作流
前端·人工智能·低代码
代码老中医43 分钟前
逃离"Div汤":2026年,当AI写了75%的代码,前端开发者还剩什么?
前端
进击的尘埃44 分钟前
Playwright Component Testing 拆到底:组件怎么挂上去的,快照怎么在 CI 里不翻车
javascript