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

【报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>

该问题目前已经被锁定, 无法添加新回复