更新记录
1.0.2(2021-10-14) 下载此版本
修复IOS BSSID 十六进制内容少0的问题
1.0.1(2021-05-06) 下载此版本
修复IOS手机没有连接WiFi时,获取WiFi信息闪退问题
1.0.0(2021-04-28) 下载此版本
1.0.0
安卓和苹果手机APP获取当前WiFi信息
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4w - 11.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 15 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
安卓App使用插件需要的权限
<!--使用网络-->
<uses-permission android:name="android.permission.INTERNET" />
<!--网络状态-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--wifi状态权限-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--位置信息-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--如果是安卓10.0,需要后台获取连接的wifi名称则添加进程获取位置信息权限 -->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<!--android 10.0使用wifi api新添加的权限-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
苹果App使用插件需要的权限
1. 网络权限【所有版本】
2. 位置权限【IOS 13.0以上】
3. 添加WiFi能力后再重新自动生成证书,Capabilities -> + Access WIFI Information 【IOS 12.0以上】
制作自定义调试基座时添加权限:在manifest.json文件源码试图中添加以下信息:
"capabilities": {
"entitlements": { // 合并到工程entitlements文件的数据(json格式)
},
"plists": { // 合并到工程Info.plist文件的数据(json格式)
}
}
例如添加wifi和蓝牙的权限
/* ios打包配置 */
"ios" : {
"capabilities" : {
"plists" : {
"NSLocationAlwaysAndWhenInUseUsageDescription" : "获取WiFi信息需要的关联权限信息",
"NSBluetoothPeripheralUsageDescription" : "使用蓝牙功能,用于蓝牙配网",
"NSBluetoothAlwaysUsageDescription" : "使用蓝牙功能,用于蓝牙配网",
"NSLocalNetworkUsageDescription" : "获取WiFi信息需要的关联权限信息",
"NSLocationAlwaysUsageDescription" : "获取WiFi信息需要的关联权限信息",
"NSLocationWhenInUseUsageDescription" : "获取WiFi信息需要的关联权限信息"
}
},
"privacyDescription" : {
"NSLocationAlwaysAndWhenInUseUsageDescription" : "获取位置信息",
"NSBluetoothPeripheralUsageDescription" : "使用蓝牙功能",
"NSBluetoothAlwaysUsageDescription" : "使用蓝牙功能",
"NSLocalNetworkUsageDescription" : "使用本地网络",
"NSLocationAlwaysUsageDescription" : "获取位置信息",
"NSLocationWhenInUseUsageDescription" : "获取位置信息"
},
"idfa" : true
}
官方文档地址:https://ask.dcloud.net.cn/article/36393
使用方法示例(index.vue)
<template>
<div>
<button type="primary" @click="getWIFIInfo">getWIFIInfo</button>
<text>展示返回的内容:{{content}}</text>
</div>
</template>
<script>
// 首先需要通过 uni.requireNativePlugin("ModuleName") 获取 module
var sand = uni.requireNativePlugin("sand-plugin-wifi");
var page;
export default {
data() {
return {
content: '请点击按钮获取'
}
},
onLoad() {
page=this;
},
methods: {
getWIFIInfo() {
//触发一次位置获取,否则iphone设置中没有定位服务
uni.getLocation({
type: 'wgs84',
success: function (res) {
console.log('当前位置的经度:' + res.longitude);
console.log('当前位置的纬度:' + res.latitude);
page.content+="位置信息:[经度:"+res.longitude+"],[纬度:"+res.latitude+"]"
}
});
// 调用异步方法
sand.getWIFIInfo({},
(ret) => {
//在页面显示获取的结果内容
page.content+="原始结果:"+JSON.stringify(ret);
page.content+="WiFi信息:[ssid:"+ret.ssid+"],[bssid:"+ret.bssid+"]"
});
}
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
.text-area {
display: flex;
justify-content: center;
}
.title {
font-size: 36rpx;
color: #8f8f94;
}
</style>
官方使用文档:https://nativesupport.dcloud.net.cn/NativePlugin/use/use
接口返回内容(JSON)
{
"status": "状态码",//2500代表成功,其他是失败
"ssid": "wifi的名称",
"bssid": "wifi的MAC地址",
"message": "成功或失败的说明信息"
}
例子:
{
"status": "2500",
"ssid": "my-home-wifi",
"bssid": "D0:35:33:32:D1:D9",
"message": "获取成功"
}
状态码
码值 | 说明 |
---|---|
2500 | 成功 |
2504 | 获取异常,可能报了异常信息 |
其他常见问题
SSID出现(null)
苹果手机权限问题,检查APP是否配置以下权限
1. 网络权限【所有版本】
2. 位置权限【IOS 13.0以上】
3. 添加WiFi能力后再重新自动生成证书,Capabilities -> + Access WIFI Information 【IOS 12.0以上】