interface.uts 10.7 KB
Newer Older
杜庆泉's avatar
杜庆泉 已提交
1 2 3
/**
 * Wifi 函数通用入参封装
 */
杜庆泉's avatar
杜庆泉 已提交
4 5
export type WifiOption = {
	success ?: (res : UniWifiResult) => void;
杜庆泉's avatar
杜庆泉 已提交
6 7
	fail ?: (res : UniError) => void;
	complete ?: (res : any) => void;
杜庆泉's avatar
杜庆泉 已提交
8 9 10
};

/**
杜庆泉's avatar
杜庆泉 已提交
11
 * Wifi 链接参数封装
杜庆泉's avatar
杜庆泉 已提交
12 13
 */
export type WifiConnectOption = {
杜庆泉's avatar
杜庆泉 已提交
14 15 16 17 18 19
	SSID ?: string;
	BSSID ?: string;
	password ?: string;
	maunal ?: boolean;
	partialInfo ?: boolean; //ios不生效
	success ?: (res : UniWifiResult) => void;
杜庆泉's avatar
杜庆泉 已提交
20 21
	fail ?: (res : UniError) => void;
	complete ?: (res : any) => void;
杜庆泉's avatar
杜庆泉 已提交
22 23 24 25 26 27
}

/**
 * 获取当前链接的wifi信息
 */
export type GetConnectedWifiOptions = {
杜庆泉's avatar
杜庆泉 已提交
28 29
	partialInfo ?: boolean
	success ?: (res : UniWifiResult) => void
杜庆泉's avatar
杜庆泉 已提交
30 31
	fail ?: (res : UniError) => void
	complete ?: (res : any) => void
杜庆泉's avatar
杜庆泉 已提交
32 33
}

杜庆泉's avatar
杜庆泉 已提交
34
/*
杜庆泉's avatar
杜庆泉 已提交
35 36 37
 * 对外暴露的wifi信息
 */
export type UniWifiInfo = {
杜庆泉's avatar
杜庆泉 已提交
38 39 40 41 42
	SSID : string;
	BSSID ?: string;
	secure ?: boolean;
	signalStrength ?: number;
	frequency ?: number;
杜庆泉's avatar
杜庆泉 已提交
43 44
}

杜庆泉's avatar
杜庆泉 已提交
45 46 47 48
export type UniWifiInfoWithPartialInfo = {
	SSID : string;
}

杜庆泉's avatar
杜庆泉 已提交
49 50 51 52 53

export type UniWifiResult = {
	errCode : number,
	errSubject : string,
	errMsg : string,
杜庆泉's avatar
杜庆泉 已提交
54
	wifi : UniWifiInfo | null
杜庆泉's avatar
杜庆泉 已提交
55 56 57 58
}

export type UniWifiCallback = () => void

杜庆泉's avatar
杜庆泉 已提交
59 60 61 62 63 64
export type UniGetWifiListCallback = (wifiInfo:UTSJSONObject) => void

export type UniWifiResultCallback = (wifiInfo:UniWifiResult) => void

export type UniWifiResultCallbackWithPartialInfo = (wifiInfo:UniWifiInfoWithPartialInfo) => void

杜庆泉's avatar
杜庆泉 已提交
65

杜庆泉's avatar
杜庆泉 已提交
66
export type StartWifi = (option : WifiOption) => void
杜庆泉's avatar
杜庆泉 已提交
67

杜庆泉's avatar
杜庆泉 已提交
68
export type StopWifi = (option : WifiOption) => void
杜庆泉's avatar
杜庆泉 已提交
69

杜庆泉's avatar
杜庆泉 已提交
70
export type GetWifiList = (option : WifiOption) => void
杜庆泉's avatar
杜庆泉 已提交
71

杜庆泉's avatar
杜庆泉 已提交
72
export type OnGetWifiList = (callback : UniGetWifiListCallback) => void
杜庆泉's avatar
杜庆泉 已提交
73

杜庆泉's avatar
杜庆泉 已提交
74
export type OffGetWifiList = (callback : UniWifiCallback) => void
杜庆泉's avatar
杜庆泉 已提交
75

杜庆泉's avatar
杜庆泉 已提交
76
export type GetConnectedWifi = (option : GetConnectedWifiOptions) => void
杜庆泉's avatar
杜庆泉 已提交
77

杜庆泉's avatar
杜庆泉 已提交
78
export type ConnectWifi = (option : WifiConnectOption) => void
杜庆泉's avatar
杜庆泉 已提交
79

杜庆泉's avatar
杜庆泉 已提交
80
export type OnWifiConnected = (callback : UniWifiResultCallback) => void
杜庆泉's avatar
杜庆泉 已提交
81

杜庆泉's avatar
杜庆泉 已提交
82
export type OnWifiConnectedWithPartialInfo = (callback : UniWifiResultCallbackWithPartialInfo) => void
杜庆泉's avatar
杜庆泉 已提交
83

杜庆泉's avatar
杜庆泉 已提交
84
export type OffWifiConnected = (callback : UniWifiCallback | null) => void
杜庆泉's avatar
杜庆泉 已提交
85

杜庆泉's avatar
杜庆泉 已提交
86
export type OnOffWifiConnectedWithPartialInfo = (callback : UniWifiCallback | null) => void
杜庆泉's avatar
杜庆泉 已提交
87

杜庆泉's avatar
杜庆泉 已提交
88
export type SetWifiList = (option : WifiOption) => void
杜庆泉's avatar
杜庆泉 已提交
89

杜庆泉's avatar
杜庆泉 已提交
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108

/**
 * 错误码
 * - 12000 尚未初始化
 * - 12001 当前系统不支持相关能力
 * - 12002 密码错误
 * - 12005 Android 特有,未打开 Wi-Fi 开关
 * - 12007 用户拒绝授权链接 Wi-Fi
 * - 12010 系统其他错误
 * - 12013 系统保存的 Wi-Fi 配置过期,建议忘记 Wi-Fi 后重试,仅 Android 支持
 */
export type WifiErrorCode = 12000 |12001 | 12002 |  12005 | 12007 | 12010 | 12013;

export interface WifiFail extends IUniError{
	errCode: WifiErrorCode
};



杜庆泉's avatar
杜庆泉 已提交
109
interface Uni {
杜庆泉's avatar
杜庆泉 已提交
110 111
	/**
	 * 初始化Wi-Fi模块
杜庆泉's avatar
杜庆泉 已提交
112 113
	 *
	 * @param {WifiOption} option
杜庆泉's avatar
杜庆泉 已提交
114 115
	 * @tutorial https://uniapp.dcloud.net.cn/api/system/wifi.html#startwifi
	 * @uniPlatform {
lizhongyi_'s avatar
lizhongyi_ 已提交
116
	 *    "app": {
杜庆泉's avatar
杜庆泉 已提交
117 118 119 120 121 122 123 124 125 126 127
	 *        "android": {
	 *            "osVer": "4.4.4",
	 *            "uniVer": "3.7.0",
	 *            "unixVer": "3.9.0"
	 *        },
	 *        "ios": {
	 *            "osVer": "9.0",
	 *            "uniVer": "3.7.7",
	 *            "unixVer": "3.9.0"
	 *   	  }
	 *    }
杜庆泉's avatar
杜庆泉 已提交
128 129 130
	 * }
	 * @uniVersion 3.7.7
	 * @uniVueVersion 2,3  //支持的vue版本
杜庆泉's avatar
杜庆泉 已提交
131
	 * @autotest { after: 'stopWifi' }
杜庆泉's avatar
杜庆泉 已提交
132
	 */
lizhongyi_'s avatar
lizhongyi_ 已提交
133
	startWifi(option : WifiOption): void,
杜庆泉's avatar
杜庆泉 已提交
134 135
	/**
	 * 关闭 Wi-Fi 模块
杜庆泉's avatar
杜庆泉 已提交
136 137
	 *
	 * @param {WifiOption} option
杜庆泉's avatar
杜庆泉 已提交
138 139
	 * @tutorial https://uniapp.dcloud.net.cn/api/system/wifi.html#stopwifi
	 * @uniPlatform {
lizhongyi_'s avatar
lizhongyi_ 已提交
140
	 *    "app": {
杜庆泉's avatar
杜庆泉 已提交
141 142 143 144 145 146 147 148 149 150 151
	 *        "android": {
	 *            "osVer": "4.4.4",
	 *            "uniVer": "3.7.0",
	 *            "unixVer": "3.9.0"
	 *        },
	 *        "ios": {
	 *            "osVer": "9.0",
	 *            "uniVer": "3.7.7",
	 *            "unixVer": "3.9.0"
	 *   	  }
	 *    }
杜庆泉's avatar
杜庆泉 已提交
152 153 154
	 * }
	 * @uniVersion 3.7.7
	 * @uniVueVersion 2,3  //支持的vue版本
杜庆泉's avatar
杜庆泉 已提交
155
	 * @autotest { before: 'startWifi' }
杜庆泉's avatar
杜庆泉 已提交
156
	 */
lizhongyi_'s avatar
lizhongyi_ 已提交
157
	stopWifi(option : WifiOption) : void,
杜庆泉's avatar
杜庆泉 已提交
158
	/**
杜庆泉's avatar
杜庆泉 已提交
159
	 * @param {WifiConnectOption} option
杜庆泉's avatar
杜庆泉 已提交
160 161
	 * @tutorial https://uniapp.dcloud.net.cn/api/system/wifi.html#connectWifi
	 * @uniPlatform {
lizhongyi_'s avatar
lizhongyi_ 已提交
162
	 *    "app": {
杜庆泉's avatar
杜庆泉 已提交
163
	 *        "android": {
杜庆泉's avatar
杜庆泉 已提交
164
	 *            "osVer": ">=4.4 && <10.0",
杜庆泉's avatar
杜庆泉 已提交
165 166 167 168 169 170 171 172 173
	 *            "uniVer": "3.7.0",
	 *            "unixVer": "3.9.0"
	 *        },
	 *        "ios": {
	 *            "osVer": "9.0",
	 *            "uniVer": "3.7.7",
	 *            "unixVer": "3.9.0"
	 *   	  }
	 *    }
杜庆泉's avatar
杜庆泉 已提交
174 175 176
	 * }
	 * @uniVersion 3.7.7
	 * @uniVueVersion 2,3  //支持的vue版本
杜庆泉's avatar
杜庆泉 已提交
177 178
	 * @autotest {
		generated: false,
杜庆泉's avatar
杜庆泉 已提交
179
		pollution: false,
杜庆泉's avatar
杜庆泉 已提交
180 181 182 183 184 185 186
		cases:[
			{
				before: 'startWifi',
				after: 'stopWifi',
				input: [{
					maunal:false,
					SSID:"Xiaomi_20D0",
杜庆泉's avatar
杜庆泉 已提交
187 188 189
					password:"streamApp!2016",
				}],
				output:{
杜庆泉's avatar
杜庆泉 已提交
190 191 192
						callbackType: 'success',
						value: { errCode: 12013 ,errMsg: "connectWifi:wifi config may be expired",errSubject: "uni-connectWifi"}
					}
杜庆泉's avatar
杜庆泉 已提交
193 194 195 196
			}
		]
	}
	*/
lizhongyi_'s avatar
lizhongyi_ 已提交
197
	connectWifi(option : WifiConnectOption) : void,
杜庆泉's avatar
杜庆泉 已提交
198
	/**
杜庆泉's avatar
杜庆泉 已提交
199 200 201 202
	 * 请求获取 Wi-Fi 列表。wifiList 数据会在 onGetWifiList 注册的回调中返回。
	 * @param {WifiOption} option
	 * @tutorial https://uniapp.dcloud.net.cn/api/system/wifi.html#getWifiList
	 * @uniPlatform {
lizhongyi_'s avatar
lizhongyi_ 已提交
203
	 *    "app": {
杜庆泉's avatar
杜庆泉 已提交
204 205 206 207 208 209 210 211 212 213 214
	 *        "android": {
	 *            "osVer": "4.4.4",
	 *            "uniVer": "3.7.0",
	 *            "unixVer": "3.9.0"
	 *        },
	 *        "ios": {
	 *            "osVer": "9.0",
	 *            "uniVer": "3.7.7",
	 *            "unixVer": "3.9.0"
	 *   	  }
	 *    }
杜庆泉's avatar
杜庆泉 已提交
215 216 217
	 * }
	 * @uniVersion 3.7.7
	 * @uniVueVersion 2,3  //支持的vue版本
杜庆泉's avatar
杜庆泉 已提交
218
	 * @autotest { before: 'startWifi', after: 'stopWifi' }
杜庆泉's avatar
杜庆泉 已提交
219
	*/
lizhongyi_'s avatar
lizhongyi_ 已提交
220
	getWifiList(option : WifiOption) : void,
杜庆泉's avatar
杜庆泉 已提交
221 222
	/**
	 * 监听获取到 Wi-Fi 列表数据事件。
杜庆泉's avatar
杜庆泉 已提交
223 224
	 *
	 * @param {UniWifiCallback} callback
杜庆泉's avatar
杜庆泉 已提交
225 226
	 * @tutorial https://uniapp.dcloud.net.cn/api/system/wifi.html#onGetWifiList
	 * @uniPlatform {
lizhongyi_'s avatar
lizhongyi_ 已提交
227
	 *    "app": {
杜庆泉's avatar
杜庆泉 已提交
228 229 230 231 232 233 234 235 236 237 238
	 *        "android": {
	 *            "osVer": "4.4.4",
	 *            "uniVer": "3.7.0",
	 *            "unixVer": "3.9.0"
	 *        },
	 *        "ios": {
	 *            "osVer": "9.0",
	 *            "uniVer": "3.7.7",
	 *            "unixVer": "3.9.0"
	 *   	  }
	 *    }
杜庆泉's avatar
杜庆泉 已提交
239 240 241
	 * }
	 * @uniVersion 3.7.7
	 * @uniVueVersion 2,3  //支持的vue版本
杜庆泉's avatar
杜庆泉 已提交
242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258
	 * @autotest  { expectCallback: true }
	 * @autotest {
		 generated: false,
		 pollution: false,
		 expectCallback: true,
		 before: 'startWifi',
		 after: 'onGetWifiListAfter',
		 cases: [
			 {
				 output: {
					 value: 0,
					 returnKey: '.wifiList.length',
					 jestExpectSyntax: 'toBeGreaterThan'
				 },
			 }
		 ]
	}
杜庆泉's avatar
杜庆泉 已提交
259
	 */
260
	onGetWifiList(callback : UniGetWifiListCallback) : void,
杜庆泉's avatar
杜庆泉 已提交
261 262
	/**
	 * 移除获取到 Wi-Fi 列表数据事件的监听函数。
杜庆泉's avatar
杜庆泉 已提交
263 264
	 *
	 * @param {UniWifiCallback} callback
杜庆泉's avatar
杜庆泉 已提交
265 266
	 * @tutorial https://uniapp.dcloud.net.cn/api/system/wifi.html#offGetWifiList
	 * @uniPlatform {
lizhongyi_'s avatar
lizhongyi_ 已提交
267
	 *    "app": {
杜庆泉's avatar
杜庆泉 已提交
268 269 270 271 272 273 274 275 276 277 278
	 *        "android": {
	 *            "osVer": "4.4.4",
	 *            "uniVer": "3.7.0",
	 *            "unixVer": "3.9.0"
	 *        },
	 *        "ios": {
	 *            "osVer": "9.0",
	 *            "uniVer": "3.7.7",
	 *            "unixVer": "3.9.0"
	 *   	  }
	 *    }
杜庆泉's avatar
杜庆泉 已提交
279 280 281
	 * }
	 * @uniVersion 3.7.7
	 * @uniVueVersion 2,3  //支持的vue版本
282
	 * @autotest { expectCallback: true }
杜庆泉's avatar
杜庆泉 已提交
283
	 */
lizhongyi_'s avatar
lizhongyi_ 已提交
284
	offGetWifiList(callback : UniWifiCallback) : void,
杜庆泉's avatar
杜庆泉 已提交
285 286
	/**
	 * 获取已连接的 Wi-Fi 信息
杜庆泉's avatar
杜庆泉 已提交
287 288
	 *
	 * @param {GetConnectedWifiOptions} option
杜庆泉's avatar
杜庆泉 已提交
289 290
	 * @tutorial https://uniapp.dcloud.net.cn/api/system/wifi.html#getConnectedWifi
	 * @uniPlatform {
lizhongyi_'s avatar
lizhongyi_ 已提交
291
	 *    "app": {
杜庆泉's avatar
杜庆泉 已提交
292 293 294 295 296 297 298 299 300 301 302
	 *        "android": {
	 *            "osVer": "4.4.4",
	 *            "uniVer": "3.7.0",
	 *            "unixVer": "3.9.0"
	 *        },
	 *        "ios": {
	 *            "osVer": "9.0",
	 *            "uniVer": "3.7.7",
	 *            "unixVer": "3.9.0"
	 *   	  }
	 *    }
杜庆泉's avatar
杜庆泉 已提交
303 304 305
	 * }
	 * @uniVersion 3.7.7
	 * @uniVueVersion 2,3  //支持的vue版本
306
	 * @autotest { before: 'startWifi', after: 'stopWifi' }
杜庆泉's avatar
杜庆泉 已提交
307
	 */
lizhongyi_'s avatar
lizhongyi_ 已提交
308
	getConnectedWifi(option : GetConnectedWifiOptions) : void,
杜庆泉's avatar
杜庆泉 已提交
309 310
	/**
	 * 监听连接上 Wi-Fi 的事件
杜庆泉's avatar
杜庆泉 已提交
311 312
	 *
	 * @param {UniWifiCallback} callback
杜庆泉's avatar
杜庆泉 已提交
313 314
	 * @tutorial https://uniapp.dcloud.net.cn/api/system/wifi.html#onWifiConnected
	 * @uniPlatform {
lizhongyi_'s avatar
lizhongyi_ 已提交
315
	 *    "app": {
杜庆泉's avatar
杜庆泉 已提交
316 317 318 319 320 321 322 323 324 325 326
	 *        "android": {
	 *            "osVer": "4.4.4",
	 *            "uniVer": "3.7.0",
	 *            "unixVer": "3.9.0"
	 *        },
	 *        "ios": {
	 *            "osVer": "9.0",
	 *            "uniVer": "3.7.7",
	 *            "unixVer": "3.9.0"
	 *   	  }
	 *    }
杜庆泉's avatar
杜庆泉 已提交
327 328 329
	 * }
	 * @uniVersion 3.7.7
	 * @uniVueVersion 2,3  //支持的vue版本
330
	 * @autotest { expectCallback: true }
杜庆泉's avatar
杜庆泉 已提交
331
	 */
332
	onWifiConnected(callback : UniWifiResultCallback) : void,
杜庆泉's avatar
杜庆泉 已提交
333 334
	/**
	 * 监听连接上 Wi-Fi 的事件。
杜庆泉's avatar
杜庆泉 已提交
335 336
	 *
	 * @param {UniWifiCallback} callback
杜庆泉's avatar
杜庆泉 已提交
337 338
	 * @tutorial https://uniapp.dcloud.net.cn/api/system/wifi.html#onWifiConnectedWithPartialInfo
	 * @uniPlatform {
lizhongyi_'s avatar
lizhongyi_ 已提交
339
	 *    "app": {
杜庆泉's avatar
杜庆泉 已提交
340 341 342 343 344 345 346 347 348 349 350
	 *        "android": {
	 *            "osVer": "4.4.4",
	 *            "uniVer": "3.7.0",
	 *            "unixVer": "3.9.0"
	 *        },
	 *        "ios": {
	 *            "osVer": "9.0",
	 *            "uniVer": "3.7.7",
	 *            "unixVer": "3.9.0"
	 *   	  }
	 *    }
杜庆泉's avatar
杜庆泉 已提交
351 352 353
	 * }
	 * @uniVersion 3.7.7
	 * @uniVueVersion 2,3  //支持的vue版本
354
	 * @autotest { expectCallback: true }
杜庆泉's avatar
杜庆泉 已提交
355
	 */
356
	onWifiConnectedWithPartialInfo(callback : UniWifiResultCallbackWithPartialInfo) : void,
杜庆泉's avatar
杜庆泉 已提交
357 358
	/**
	 * 移除连接上 Wi-Fi 的事件的监听函数。
杜庆泉's avatar
杜庆泉 已提交
359 360
	 *
	 * @param {UniWifiCallback} callback
杜庆泉's avatar
杜庆泉 已提交
361 362
	 * @tutorial https://uniapp.dcloud.net.cn/api/system/wifi.html#offWifiConnected
	 * @uniPlatform {
lizhongyi_'s avatar
lizhongyi_ 已提交
363
	 *    "app": {
杜庆泉's avatar
杜庆泉 已提交
364 365 366 367 368 369 370 371 372 373 374
	 *        "android": {
	 *            "osVer": "4.4.4",
	 *            "uniVer": "3.7.0",
	 *            "unixVer": "3.9.0"
	 *        },
	 *        "ios": {
	 *            "osVer": "9.0",
	 *            "uniVer": "3.7.7",
	 *            "unixVer": "3.9.0"
	 *   	  }
	 *    }
杜庆泉's avatar
杜庆泉 已提交
375 376 377
	 * }
	 * @uniVersion 3.7.7
	 * @uniVueVersion 2,3  //支持的vue版本
378
	 * @autotest { expectCallback: true }
杜庆泉's avatar
杜庆泉 已提交
379
	 */
lizhongyi_'s avatar
lizhongyi_ 已提交
380
	offWifiConnected(callback : UniWifiCallback | null) : void,
杜庆泉's avatar
杜庆泉 已提交
381 382
	/**
	 * 移除连接上 Wi-Fi 的事件的监听函数。
杜庆泉's avatar
杜庆泉 已提交
383 384
	 *
	 * @param {UniWifiCallback} callback
杜庆泉's avatar
杜庆泉 已提交
385 386
	 * @tutorial https://uniapp.dcloud.net.cn/api/system/wifi.html#onOffWifiConnectedWithPartialInfo
	 * @uniPlatform {
lizhongyi_'s avatar
lizhongyi_ 已提交
387
	 *    "app": {
杜庆泉's avatar
杜庆泉 已提交
388
	 *        "android": {
杜庆泉's avatar
杜庆泉 已提交
389 390 391
	 *            "osVer": "x",
	 *            "uniVer": "x",
	 *            "unixVer": "x"
杜庆泉's avatar
杜庆泉 已提交
392 393
	 *        },
	 *        "ios": {
杜庆泉's avatar
杜庆泉 已提交
394 395 396
	 *            "osVer": "x",
	 *            "uniVer": "x",
	 *            "unixVer": "x"
杜庆泉's avatar
杜庆泉 已提交
397 398
	 *   	  }
	 *    }
杜庆泉's avatar
杜庆泉 已提交
399 400 401
	 * }
	 * @uniVersion 3.7.7
	 * @uniVueVersion 2,3  //支持的vue版本
402
	 * @autotest { expectCallback: true }
杜庆泉's avatar
杜庆泉 已提交
403
	 */
lizhongyi_'s avatar
lizhongyi_ 已提交
404
	onOffWifiConnectedWithPartialInfo(callback : UniWifiCallback | null) : void,
杜庆泉's avatar
杜庆泉 已提交
405 406
	/**
	 * SetWifiList  暂未实现
杜庆泉's avatar
杜庆泉 已提交
407
	 *
杜庆泉's avatar
杜庆泉 已提交
408 409 410 411 412 413 414 415 416 417 418 419 420 421 422
	 * @uniPlatform {
	 *    "app": {
	 *        "android": {
	 *            "osVer": "x",
	 *            "uniVer": "x",
	 *            "unixVer": "x"
	 *        },
	 *        "ios": {
	 *            "osVer": "x",
	 *            "uniVer": "x",
	 *            "unixVer": "x"
	 *   	  }
	 *    }
	 * }
	 */
lizhongyi_'s avatar
lizhongyi_ 已提交
423
	setWifiList(option : WifiOption) : void,
杜庆泉's avatar
杜庆泉 已提交
424
}