文章目录
- 前言
- 一、代码及注释
- 总结
前言
关键词:HBuilder uniapp wifi RSSI SSID
最近做项目有一个需求,要求用HBuilder uniapp做一个app显示手机可接收的WiFi名称和对应的场强(信号强度),百度找了一圈,只找到了关于WiFi名称的一些资料,于是根据一篇文章修改了一下(附在文末),最终很nice的解决了我的问题。有一定的参考价值,感兴趣的小伙伴们可以参考一下。(9.6号)
一、代码及注释
index.vue 代码如下:
<template>
<view>
home---{{title}}
<button type="default" @click="getWifiInfo">获取wifi信息</button>
</view>
</template>
<script>
// const gbWiFi = uni.requireNativePlugin('Googbuild-WIFI');
const FvvUniWifiHelper = uni.requireNativePlugin("Fvv-UniWifiHelper");
export default {
data() {
return {
title: "",
wifiArray:[],
}
},
onLoad() {
},
methods: {
getWifiInfo () {
//在手机上显示
uni.showModal({
title: "alert 弹窗标题",
//content: "弹窗内容,告知当前状态、信息和解决方法,描述文字尽量控制在三行内",
content: this.getWiFiIP(),
showCancel: false,
confirmText: "确定",
confirmColor: "#00ffff",
success(res) {
if (res.confirm) {
console.log('确认')
}
}
})
},
// 获取WiFi信息
getWiFiIP() {
// MainActivity
var MainActivity = plus.android.runtimeMainActivity()
// Context
var Context = plus.android.importClass('android.content.Context')
// WiFi 相关包
plus.android.importClass("android.net.wifi.WifiManager")
plus.android.importClass("android.net.wifi.WifiInfo")
plus.android.importClass("android.net.wifi.ScanResult")
plus.android.importClass("java.util.ArrayList")
// WiFi 管理实例
var wifiManager = MainActivity.getSystemService(Context.WIFI_SERVICE)
// 开启 WiFi
// wifiManager.setWifiEnabled(true)
// 当前连接 WiFi 信息
var wifiInfo = wifiManager.getConnectionInfo()
console.log(wifiInfo.toString())//打印当前连接 WiFi 的所有信息
var wifirssi = wifiInfo.getRssi()// 获取当前链接 WiFi 的信号强度
console.log(wifirssi)//打印 WiFi 的信号强度
var ssid = wifiInfo.getSSID()// 获取当前 WIFI 连接的 SSID (WIFI 名称)
ssid = ssid.replace(/(^\"*)|(\"*$)/g, "")
console.log(ssid)//打印 WIFI 名称
console.log(ssid+","+"信号强度:"+wifirssi)
//注意 getConnectionInfo() 与 getScanResults() 的区别
var resultList = wifiManager.getScanResults(),//扫描得到的wifi信号集合
len = resultList.size()
var wifiScanResults = '' //定义wifiScanResults
console.log(resultList)
//注:获取resultList中的场强信息用的是 level 而不是 RSSI
for(var i = 0; i < len; i++) {
console.log(resultList.get(i).plusGetAttribute('SSID') +" 信号:"+resultList.get(i).plusGetAttribute('level'))
//将每一个ssid与rssi 都添加到wifiArray数组中,用于绑定显示,根据个人业务取舍 wifiArray=[{name:WiFi的SSID}]
let oneWiFi={
name:resultList.get(i).plusGetAttribute('SSID'),
signal:resultList.get(i).plusGetAttribute('level')
}
this.wifiArray.push(oneWiFi);
wifiScanResults = wifiScanResults + ',' + this.wifiArray[i].name + ' 信号:'+ this.wifiArray[i].signal + "\n";//打印内容
}
return wifiScanResults//返回
}
},
}
</script>
<style>
</style>
总结
(有不懂的可以私信我,我会在文章中进行补充)
以上就是本文的主要内容,有错误请各位大佬指正。文章来源:https://www.toymoban.com/news/detail-513618.html
附参考文章:uni-app获取手机当前连接的WIFI名称_yjl23332的博客-CSDN博客_uniapp获取wifi名称文章来源地址https://www.toymoban.com/news/detail-513618.html
到了这里,关于uniapp获取手机可接收的所有的WiFi名称与信号强度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!