提交 64fe2665 编写于 作者: lizhongyi_'s avatar lizhongyi_

fix: 将获取wifi信息接口的返回值改成回调,增加readme接口使用示例

上级 cb2454bf
...@@ -27,14 +27,15 @@ ...@@ -27,14 +27,15 @@
/* iOS12之后获取wifi信息需要获取系统定位权限,否则获取到的wifi信息为空 */ /* iOS12之后获取wifi信息需要获取系统定位权限,否则获取到的wifi信息为空 */
requestLocationPromise(function(res) { requestLocationPromise(function(res) {
if (res["success"] == true) { if (res["success"] == true) {
let wifiInfo = getCurrentWifiInfo() getCurrentWifiInfo({
if (wifiInfo != null) { success:function(res){
console.log(wifiInfo) console.log(res)
uni.showToast({ uni.showToast({
title: "当前wifi信息获取成功", title: `当前wifi信息: interface: ${res.wifiInterface}, SSID: ${res.SSID}, BSSID: ${res.BSSID}` ,
icon: 'none' icon: 'none'
}) })
} }
})
} }
}) })
}, },
......
# uni-currentwifiinformation # uni-currentwifiinformation
### 开发文档
[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html) ## 使用文档
[UTS 原生插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
[Hello UTS](https://gitcode.net/dcloud/hello-uts/-/tree/dev) ```ts
\ No newline at end of file
import { getCurrentWifiInfo, requestLocationPromise } from '@/uni_modules/uni-wifiinformation';
// 获取系统定位权限
requestLocationPromise(function(res){
console.log(res)
uni.showToast({
title: res["message"],
icon: 'none'
})
})
// 获取手机当前连接的wifi信息
getCurrentWifiInfo({
success:function(res){
console.log(res)
uni.showToast({
title: `当前wifi信息: interface: ${res.wifiInterface}, SSID: ${res.SSID}, BSSID: ${res.BSSID}` ,
icon: 'none'
})
}
})
// 注意:iOS12之后获取wifi信息需要获取系统定位权限,否则获取到的wifi信息为空
// 所以建议在获取wifi信息之前,先调用获取系统定位权限的接口
// 示例如下:
requestLocationPromise(function(res) {
if (res["success"] == true) {
getCurrentWifiInfo({
success:function(res){
console.log(res)
uni.showToast({
title: `当前wifi信息: interface: ${res.wifiInterface}, SSID: ${res.SSID}, BSSID: ${res.BSSID}` ,
icon: 'none'
})
}
})
}
})
```
### 参数
#### getCurrentWifiInfo
Object object
|属性|类型|必填|说明|
|----|---|----|----|
|success|function|否|接口调用成功的回调函数|
|fail|function|否|接口调用失败的回调函数|
|complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
object.success 回调函数
|属性|类型|说明|
|----|---|----|
|wifiInterface|string|当前手机连接wifi的interface,如 en0|
|SSID|string|当前手机连接wifi的SSID,即wifi名称|
|BSSID|string|当前手机连接wifi的BSSID|
#### requestLocationPromise
completion UTSCallback
object 回调函数
|属性|类型|说明|
|----|---|----|
|success|bool|是否获取成功|
|message|string|描述信息|
...@@ -3,6 +3,16 @@ import { CaptiveNetwork, kCNNetworkInfoKeySSID, kCNNetworkInfoKeyBSSID } from 'S ...@@ -3,6 +3,16 @@ import { CaptiveNetwork, kCNNetworkInfoKeySSID, kCNNetworkInfoKeyBSSID } from 'S
import { NSArray, NSDictionary } from 'Foundation'; import { NSArray, NSDictionary } from 'Foundation';
import { CFString } from 'CoreFoundation'; import { CFString } from 'CoreFoundation';
/**
* 定义 接口参数
*/
type GetWifiInfoOptions = {
success?: (res: object) => void;
fail?: (res: object) => void;
complete?: (res: object) => void;
};
class CurrentWifiInfo { class CurrentWifiInfo {
wifiInterface: string = "" wifiInterface: string = ""
...@@ -89,13 +99,12 @@ export function requestLocationPromise (completion: UTSCallback) { ...@@ -89,13 +99,12 @@ export function requestLocationPromise (completion: UTSCallback) {
locationPromiseService.requestPromise(completion) locationPromiseService.requestPromise(completion)
} }
export function getCurrentWifiInfo (): CurrentWifiInfo | null { export function getCurrentWifiInfo (option: GetWifiInfoOptions) {
let arr = CNCopySupportedInterfaces() let arr = CNCopySupportedInterfaces()
if (arr != null) { if (arr != null) {
let list = arr! as NSArray let list = arr! as NSArray
let wifiInfo = new CurrentWifiInfo("", "", "")
let index = 0 let index = 0
let array = [1, 2, 3] let wifiInfo = new CurrentWifiInfo("", "", "")
while (index < list.count) { while (index < list.count) {
let item = list[index] let item = list[index]
let interfaceName = item as string let interfaceName = item as string
...@@ -118,9 +127,20 @@ export function getCurrentWifiInfo (): CurrentWifiInfo | null { ...@@ -118,9 +127,20 @@ export function getCurrentWifiInfo (): CurrentWifiInfo | null {
} }
if (wifiInfo.BSSID.length > 0 && wifiInfo.SSID.length > 0) { if (wifiInfo.BSSID.length > 0 && wifiInfo.SSID.length > 0) {
return wifiInfo let res = {
wifiInterface: wifiInfo.wifiInterface,
SSID: wifiInfo.SSID,
BSSID: wifiInfo.BSSID
}
option.success?.(res)
option.complete?.(res)
}else {
option.fail?.({message: "current wifi is null"})
option.complete?.({message: "current wifi is null"})
} }
}else {
option.fail?.({message: "current wifi is null"})
option.complete?.({message: "current wifi is null"})
} }
return null
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册