From 038e489bc381b3166e597644a43d18b2a4c9688c Mon Sep 17 00:00:00 2001 From: m0_75226990 Date: Thu, 16 Mar 2023 18:52:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20uni-wifi=20ios=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- uni_modules/uni-wifi/utssdk/app-ios/index.uts | 107 +++++++++++------- 1 file changed, 63 insertions(+), 44 deletions(-) diff --git a/uni_modules/uni-wifi/utssdk/app-ios/index.uts b/uni_modules/uni-wifi/utssdk/app-ios/index.uts index 221a878..3d0712e 100644 --- a/uni_modules/uni-wifi/utssdk/app-ios/index.uts +++ b/uni_modules/uni-wifi/utssdk/app-ios/index.uts @@ -8,23 +8,23 @@ import { UIDevice } from 'UIKit'; * Wifi 函数通用入参封装 */ type WifiOption = { - success?: (res: object) => void; - fail?: (res: object) => void; - complete?: (res: object) => void; + success?: (res: UniWifiResult) => void; + fail?: (res: UniWifiResult) => void; + complete?: (res: UniWifiResult) => void; }; /** * Wifi 链接参数封装 */ type WifiConnectOption = { - SSID: string; - BSSID: string; - password: string; - maunal: boolean; - partialInfo: boolean; //ios不生效 - success?: (res: object) => void; - fail?: (res: object) => void; - complete?: (res: object) => void; + SSID?: string; + BSSID?: string; + password?: string; + maunal?: boolean; + partialInfo?: boolean; //ios不生效 + success?: (res: UniWifiResult) => void; + fail?: (res: UniWifiResult) => void; + complete?: (res: UniWifiResult) => void; } /** @@ -32,9 +32,9 @@ type WifiConnectOption = { */ type GetConnectedWifiOptions = { partialInfo?: boolean - success?: (res: UTSJSONObject) => void - fail?: (res: UTSJSONObject) => void - complete?: (res: UTSJSONObject) => void + success?: (res: UniWifiResult) => void + fail?: (res: UniWifiResult) => void + complete?: (res: UniWifiResult) => void } /* @@ -48,6 +48,15 @@ type UniWifiInfo = { frequency: number; } +type UniWifiResult = { + errCode : number, + errSubject : string, + errMsg : string, + wifi: UniWifiInfo | null +} + +type UniWifiCallback = () => void + /* * 系统定位权限获取类 @@ -114,12 +123,13 @@ function requestLocationPromise(@escaping completion: (res: boolean)=>void) { */ function fetchConnectedWifiWithLocationPromise(option: GetConnectedWifiOptions) { let arr = CNCopySupportedInterfaces() - let wifiInfo = new UniWifiInfo() - wifiInfo.BSSID = "" - wifiInfo.SSID = "" - wifiInfo.secure = false - wifiInfo.signalStrength = 0 - wifiInfo.frequency = 0 + let wifiInfo: UniWifiInfo = { + BSSID: "", + SSID: "", + secure: false, + signalStrength: 0, + frequency: 0 + } if (arr != null) { let list = arr! as NSArray @@ -148,7 +158,7 @@ function fetchConnectedWifiWithLocationPromise(option: GetConnectedWifiOptions) } if (wifiInfo.BSSID.length > 0 && wifiInfo.SSID.length > 0) { - let res = { + let res: UniWifiResult = { errSubject: "uni-getConnectedWifi", errCode: 0, errMsg: "getConnectedWifi:ok", @@ -157,19 +167,21 @@ function fetchConnectedWifiWithLocationPromise(option: GetConnectedWifiOptions) option.success?.(res) option.complete?.(res) }else { - const res = { + const res: UniWifiResult = { errSubject: "uni-getConnectedWifi", errCode: 12010, - errMsg: "getConnectedWifi:system internal error" + errMsg: "getConnectedWifi:system internal error", + wifi: null } option.fail?.(res) option.complete?.(res) } }else { - const res = { + const res: UniWifiResult = { errSubject: "uni-getConnectedWifi", errCode: 12010, - errMsg: "getConnectedWifi:system internal error" + errMsg: "getConnectedWifi:system internal error", + wifi: null } option.fail?.(res) option.complete?.(res) @@ -182,7 +194,7 @@ function fetchConnectedWifiWithLocationPromise(option: GetConnectedWifiOptions) * 保存全局数据信息 */ class UniWiFiModuleGloabInfo { - static alreadyStartWifi: boolean + static alreadyStartWifi: boolean = false } /* =================================== 对外暴露的接口 ==============================================*/ @@ -194,10 +206,11 @@ class UniWiFiModuleGloabInfo { */ export function startWifi(option: WifiOption) { UniWiFiModuleGloabInfo.alreadyStartWifi = true - let res = { + let res: UniWifiResult = { errSubject: "uni-startWifi", errCode: 0, - errMsg: "startWifi:ok" + errMsg: "startWifi:ok", + wifi: null } option.success?.(res) option.complete?.(res) @@ -209,10 +222,11 @@ export function startWifi(option: WifiOption) { export function stopWifi(option: WifiOption) { UniWiFiModuleGloabInfo.alreadyStartWifi = false LocationPromiseService.promiseCompletionHandler = [] - let res = { + let res: UniWifiResult = { errSubject: "uni-stopWifi", errCode: 0, - errMsg: "stopWifi:ok" + errMsg: "stopWifi:ok", + wifi: null } option.success?.(res) option.complete?.(res) @@ -222,10 +236,11 @@ export function stopWifi(option: WifiOption) { * 获取wifi列表, 在调用之前需要引导用户跳转到系统设置-WIFI设置页面,系统搜索周边wifi后app才能接收到回调 */ export function getWifiList(option: WifiOption) { - let res = { + let res: UniWifiResult = { errSubject: "uni-getWifiList", errCode: 12001, - errMsg: "getWifiList:system not support" + errMsg: "getWifiList:system not support", + wifi: null } option.fail?.(res) option.complete?.(res) @@ -234,14 +249,14 @@ export function getWifiList(option: WifiOption) { /* 获取wifi列表的回调 * note: 请在getWifiList方法的回调里调用该方法 */ -export function onGetWifiList(callback: UTSCallback) { +export function onGetWifiList(callback: UniWifiCallback) { } /* * 注销获取wifi列表的回调 */ -export function offGetWifiList(callback: UTSCallback) { +export function offGetWifiList(callback: UniWifiCallback) { } @@ -251,10 +266,11 @@ export function offGetWifiList(callback: UTSCallback) { */ export function getConnectedWifi(option: GetConnectedWifiOptions) { if (UniWiFiModuleGloabInfo.alreadyStartWifi == false) { - let res = { + let res: UniWifiResult = { errSubject: "uni-getConnectedWifi", errCode: 12000, errMsg: "getConnectedWifi:not init", + wifi: null } option.fail?.(res) option.complete?.(res) @@ -264,10 +280,11 @@ export function getConnectedWifi(option: GetConnectedWifiOptions) { if (success == true) { fetchConnectedWifiWithLocationPromise(option) }else { - let res = { + let res: UniWifiResult = { errSubject: "uni-getConnectedWifi", errCode: 12007, errMsg: "getConnectedWifi:user denied", + wifi: null } option.fail?.(res) option.complete?.(res) @@ -283,10 +300,11 @@ export function getConnectedWifi(option: GetConnectedWifiOptions) { * 连接wifi */ export function connectWifi(option: WifiConnectOption) { - let res = { + let res: UniWifiResult = { errSubject: "uni-connectWifi", errCode: 12001, - errMsg: "connectWifi:system not support" + errMsg: "connectWifi:system not support", + wifi: null } option.fail?.(res) option.complete?.(res) @@ -296,28 +314,28 @@ export function connectWifi(option: WifiConnectOption) { /* * 连上wifi事件的监听函数 */ -export function onWifiConnected(callback: UTSCallback) { +export function onWifiConnected(callback: UniWifiCallback) { } /* * 连上wifi事件的监听函数, wifiInfo仅包含ssid */ -export function onWifiConnectedWithPartialInfo(callback: UTSCallback) { +export function onWifiConnectedWithPartialInfo(callback: UniWifiCallback) { } /* * 移除连接上wifi的事件的监听函数,不传此参数则移除所有监听函数。 */ -export function offWifiConnected(callback: UTSCallback | null) { +export function offWifiConnected(callback: UniWifiCallback | null) { } /* * 移除连接上wifi的事件的监听函数,不传此参数则移除所有监听函数。 */ -export function onOffWifiConnectedWithPartialInfo(callback: UTSCallback | null) { +export function onOffWifiConnectedWithPartialInfo(callback: UniWifiCallback | null) { } @@ -325,10 +343,11 @@ export function onOffWifiConnectedWithPartialInfo(callback: UTSCallback | null) * 设置 wifiList 中 AP 的相关信息。在 onGetWifiList 回调后调用,iOS特有接口。 */ export function setWifiList(option: WifiOption) { - let res = { + let res: UniWifiResult = { errSubject: "uni-setWifiList", errCode: 12001, - errMsg: "setWifiList:system not support" + errMsg: "setWifiList:system not support", + wifi: null } option.fail?.(res) option.complete?.(res) -- GitLab