h***@163.com
h***@163.com
  • 发布:2023-03-19 12:19
  • 更新:2023-03-19 12:20
  • 阅读:116

【报Bug】监听获取到 Wi-Fi 列表数据事件 无法移除监听

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10

HBuilderX类型: Alpha

HBuilderX版本号: 3.7.7

手机系统: Android

手机系统版本号: Android 10

手机厂商: 华为

手机机型: mate30

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
<template> <view> <button click="initWifi">初始化wifi模块</button> <button click="startWifi">开启监听</button> <button click="getWifi">获取wifi列表</button> <button click="delWifi">移除监听</button> </view> </template> <script> export default { data() { return { } }, methods: { initWifi() { uni.startWifi({ success: (res) => { console.log(JSON.stringify(res)); }, fail: (e) => { uni.showToast({ title: 'WIFI初始化失败', icon: 'none' }); } }) }, startWifi() { uni.onGetWifiList(this.onGetWifiListener); }, //回调监听 onGetWifiListener(res) { console.log(JSON.stringify(res)); }, //获取wifi列表 getWifi() { uni.getWifiList({ success: (res) => { console.log(JSON.stringify(res)); }, fail: () => { uni.showToast({ title: '获取WIFI列表失败', icon: 'none' }); } }) }, //移除监听 delWifi() { uni.offGetWifiList(this.onGetWifiListener); }, } } </script> <style> </style>

操作步骤:

1.初始化wifi
2.开启监听
3.获取wifi列表 ok
4.关闭监听
5.再次获取wifi列表还是可以收到监听内容
6.这个监听一直无法去掉,就算关闭界面还是可以监听到。

预期结果:

关闭监听,再次获取wifi列表不要在,监听到数据了。

实际结果:

无法满足监听移除效果

bug描述:

https://uniapp.dcloud.net.cn/api/system/wifi.html#ongetwifilist

监听获取到 Wi-Fi 列表数据事件,再次移除监听不起作用,监听还是可以监听......

uni.offGetWifiList(CALLBACK) 毫无作用

具体看下面代码

2023-03-19 12:19 负责人:无 分享
已邀请:
h***@163.com

h***@163.com (作者)

<template>  
	<view>  
		<button click="initWifi">初始化wifi模块</button>  
		<button click="startWifi">开启监听</button>  
		<button click="getWifi">获取wifi列表</button>  
		<button click="delWifi">移除监听</button>  
	</view>  
</template>  
  
<script>  
	export default {  
		data() {  
			return {  
  
			}  
		},  
		methods: {  
			initWifi() {  
				uni.startWifi({  
					success: (res) => {  
						console.log(JSON.stringify(res));  
					},  
					fail: (e) => {  
						uni.showToast({  
							title: 'WIFI初始化失败',  
							icon: 'none'  
						});  
					}  
				})  
			},  
			startWifi() {  
				uni.onGetWifiList(this.onGetWifiListener);  
			},  
			//回调监听  
			onGetWifiListener(res) {  
				console.log(JSON.stringify(res));  
			},  
			//获取wifi列表  
			getWifi() {  
				uni.getWifiList({  
					success: (res) => {  
						console.log(JSON.stringify(res));  
					},  
					fail: () => {  
						uni.showToast({  
							title: '获取WIFI列表失败',  
							icon: 'none'  
						});  
					}  
				})  
			},  
			//移除监听  
			delWifi() {  
				uni.offGetWifiList(this.onGetWifiListener);  
			},  
		}  
	}  
</script>  
  
<style>  
  
</style>

要回复问题请先登录注册