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的源码视图中加上一句代码

安卓端

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

结束语

欢迎指教,点个赞啦!

相关推荐
鹏多多21 小时前
Trae cn里使用Pencil来制作设计图的手把手教程
前端·ai编程·trae
客场消音器21 小时前
如何使用codex进行UI重构,让AI开发的前端页面不再千篇一律
前端·后端·微信小程序
大家的林语冰21 小时前
Canvas 文艺复兴,HTML-in-Canvas 炫酷特效摆拍走红,Canvas 中也能渲染交互式的 HTML 元素了
前端·javascript·html
WebGirl21 小时前
Visual Studio Code (VSCode) 中配置 MCP
前端
JarvanMo1 天前
Fluwx 6.0 预览版本他来了
前端
KaMeidebaby1 天前
卡梅德生物技术快报|单 B 细胞抗体筛选服务:技术架构、流程实现与数据验证
前端·数据库·其他·百度·新浪微博
爱勇宝1 天前
别焦虑,也别躺平:给年轻程序员的一封信
前端·后端·架构
刮风那天1 天前
Android 如何降低进程优先级可以被查杀?
android
OpenTiny社区1 天前
2026 OpenTiny NEXT 产品调研启动!
前端·开源·github