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

安卓端

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

结束语

欢迎指教,点个赞啦!

相关推荐
腾讯TNTWeb前端团队3 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
范文杰7 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪7 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪7 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy8 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom8 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom8 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom9 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom9 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试
uhakadotcom9 小时前
Node.js 包管理器:npm vs pnpm
前端·javascript·面试