赞
踩
- <template>
- <view >
- <button @click="getWifiList">获取WiFi列表</button>
- <scroll-view
- :scroll-top="scrollTop"
- scroll-y
- class="content-pop"
- >
- <view
- class="itemInfo"
- v-for="(item, index) in wifiList"
- :key="index"
- >
- <text>{{ item.SSID }}</text>
- </view>
- </scroll-view>
- </view>
- </template>
-
- <script>
- export default {
- data() {
- return {
- wifiList: [],
- };
- },
- methods: {
- getWifiList() {
- // 获取手机型号
- const sys = uni.getSystemInfoSync();
- if (sys.platform == "android" && sys.parseInt(sys.system.substr(8) < 6) {
- this.$tip.error("手机版本不支持");
- return;
- }
- if (sys.platform == "ios" && sys.parseInt(sys.system.substr(4)) < 11.2) {
- this.$tip.error("手机版本不支持");
- return;
- }
- //初始wifi模块
- this.start_wifi();
- },
- start_wifi() {
- uni.startWifi({
- success: (res) => {
- this.getWifi();
- },
- fail: (err) => {
- this.$tip.toast("WIFI启动失败");
- },
- });
- },
- getWifi() {
- let that = this;
- uni.getWifiList({
- //成功后,就可以获取列表了
- success(res) {
- //列表获取成功后,要到事件里提取
- uni.onGetWifiList((res) => {
- that.onGetWifiListFun(res);
- });
- },
- fail(err) {
- console.log(err, "err");
- },
- });
- },
- // 监听获取到的WiFi列表函数 进行处理
- onGetWifiListFun(info) {
- this.wifiList = [];
- let wifiList = [];
- // 过滤掉没有SSID的 还有我个人对信号的处理,用来渲染对应的样式的
- wifiList = info.wifiList.filter((item) => {
- if (item.signalStrength >= -55) {
- item["signalDefine"] = [true, true, true];
- } else if (item.signalStrength >= -66) {
- item["signalDefine"] = [false, true, true];
- } else if (item.signalStrength >= -88) {
- item["signalDefine"] = [false, false, true];
- } else if (item.signalStrength >= -100) {
- item["signalDefine"] = [false, false, false];
- }
- return item.SSID;
- });
- // 按信号强度排序
- wifiList = wifiList.sort((a, b) => {
- return b.signalStrength - a.signalStrength;
- });
- // 取当前连接的WiFi的信号
- const connectResIndex = wifiList.findIndex(
- (item) => item.SSID === this.connectWifi
- );
- const connectRes = wifiList[connectResIndex];
- if (connectRes) {
- this.connectWifiSignal = connectRes["signalDefine"];
- this.connectRes = connectRes;
- }
- wifiList.splice(connectResIndex, 1);
-
- this.wifiList = this.uniqueByField(wifiList, "SSID");
- this.$tip.loaded();
- },
- uniqueByField(list, field) {
- const seen = new Set();
- const result = [];
-
- for (let item of list) {
- const value = item[field];
- if (!seen.has(value)) {
- seen.add(value);
- result.push(item);
- }
- }
-
- return result;
- },
- },
- };
- </script>
-
- <style scoped>
- .itemInfo {
- height: 96rpx;
- line-height: 96rpx;
- font-size: 28rpx;
- border-bottom: 1rpx solid #f4f4f4;
- text-align: left;
- }
- .content-pop {
- width: 100vw;
- max-height: 55vh;
- padding: 0 30rpx;
- }
- </style>
使用方法:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。