From fb74d2359425696a8fffcfe9ed2b4644c16601ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=A6=8F=E7=8F=8D?= Date: Tue, 27 Jul 2021 15:13:00 +0800 Subject: [PATCH] =?UTF-8?q?1.wifi=E7=9A=84bug=E4=BF=AE=E5=A4=8D=202.wifi?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E5=B1=95=E7=A4=BA=E6=94=B9=E4=B8=BAwlan?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 李福珍 --- entry/src/main/js/default/i18n/en-US.json | 8 +- entry/src/main/js/default/i18n/zh-CN.json | 10 +- .../js/default/model/wifiImpl/WifiModel.js | 74 ++------ entry/src/main/js/default/pages/wifi/wifi.js | 160 ++++++++++++------ .../main/resources/rawfile/settinglist.json | 2 +- 5 files changed, 136 insertions(+), 118 deletions(-) diff --git a/entry/src/main/js/default/i18n/en-US.json b/entry/src/main/js/default/i18n/en-US.json index 32fbe3a4..4ded346f 100755 --- a/entry/src/main/js/default/i18n/en-US.json +++ b/entry/src/main/js/default/i18n/en-US.json @@ -13,8 +13,8 @@ "buttonValue1Right": ">", "buttonValue1Left": "<", "buttonValue2Left": "⇦", - "more-wifi-settings": "More Wifi Settings", - "wifi-list": "Wifi-List which can be used", + "more-wifi-settings": "More WLAN Settings", + "wifi-list": "WLAN-List which can be used", "autoset": "Autoset", "autoset-require": "date、time and time zone", "date": "Date", @@ -24,7 +24,7 @@ "confirm": "Confirm", "brightnessMode": "brightnessMode", "settings": "Settings", - "wifiTab": "wifiTab", + "wifiTab": "WLANTab", "brightnessTab": "brightnessTab", "applyTab": "applyTab", "dateAndTimeTab": "dateAndTimeTab", @@ -41,7 +41,7 @@ "model": "Model", "brand": "Brand", "manufacturer": "Manufacturer", - "wifi": "WIFI", + "wifi": "WLAN", "version": "version", "monday": "Monday", "tuesday": "Tuesday", diff --git a/entry/src/main/js/default/i18n/zh-CN.json b/entry/src/main/js/default/i18n/zh-CN.json index c90dc6f8..c8a6ebeb 100755 --- a/entry/src/main/js/default/i18n/zh-CN.json +++ b/entry/src/main/js/default/i18n/zh-CN.json @@ -13,9 +13,9 @@ "buttonValue1Right": ">", "buttonValue1Left": "<", "buttonValue2Left": "⇦", - "more-wifi-settings": "更多WIFI设置", - "tips-content": "为提高位置信息的精确度,应用和服务仍然会扫描WIFI网络.您可以在提高精确度中更改此设置", - "wifi-list": "可用WIFI列表", + "more-wifi-settings": "更多WLAN设置", + "tips-content": "为提高位置信息的精确度,应用和服务仍然会扫描WLAN网络.您可以在提高精确度中更改此设置", + "wifi-list": "可用WLAN列表", "wifi-advanced-options": "显示高级选项", "wifi-pass-details": "请至少输入8个字符", "wifi-link": "连接", @@ -29,7 +29,7 @@ "confirm": "确定", "brightnessMode": "自动调节", "settings": "设置", - "wifiTab": "WIFI", + "wifiTab": "WLAN", "brightnessTab": "亮度", "applyTab": "应用", "dateAndTimeTab": "日期和时间", @@ -47,7 +47,7 @@ "model": "型号", "brand": "品牌", "manufacturer": "生产商", - "wifi": "WIFI", + "wifi": "WLAN", "version": "版本 ", "monday": "星期一", "tuesday": "星期二", diff --git a/entry/src/main/js/default/model/wifiImpl/WifiModel.js b/entry/src/main/js/default/model/wifiImpl/WifiModel.js index 53162c65..a098f775 100755 --- a/entry/src/main/js/default/model/wifiImpl/WifiModel.js +++ b/entry/src/main/js/default/model/wifiImpl/WifiModel.js @@ -15,16 +15,11 @@ import BaseModel from '../BaseModel.js'; import LogUtil from '../../common/baseUtil/LogUtil.js'; import WifiNativeJs from '@ohos.wifi_native_js'; -import Subscriber from '@ohos.commonevent'; let logUtil = new LogUtil(); let mWifiList = []; let remdupWifiList = []; -var wifiCode = null; -let mCommonEventSubscriber = null; -let mCommonEventSubscribeInfo = { - events: ["usual.event.wifi.CONN_STATE"] -}; + export default class WifiModel extends BaseModel { getWifiStatus() { logUtil.info('WifiNativeJs isWifiActive'); @@ -48,6 +43,9 @@ export default class WifiModel extends BaseModel { mWifiList = []; remdupWifiList = []; WifiNativeJs.getScanInfos(result => { + if (result == null) { + return; + } logUtil.info('[wifi_js_test] wifi received scan info call back results:' + JSON.stringify(result)); let clen = Object.keys(result).length; let image; @@ -62,43 +60,43 @@ export default class WifiModel extends BaseModel { logUtil.info('timestamp: ' + result[j].timestamp); logUtil.info('SignalLevel: ' + WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band)); - if (result[j].securityType == 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) == 4) { + if (result[j].securityType === 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) === 4) { image = '/res/image/ic_wifi_signal_4_dark.png'; logUtil.info('securityType 1 and signal level 4'); }; - if (result[j].securityType == 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) == 3) { + if (result[j].securityType === 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) === 3) { image = '/res/image/ic_wifi_signal_3_dark.png'; logUtil.info('securityType 1 and signal level 3'); }; - if (result[j].securityType == 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) == 2) { + if (result[j].securityType === 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) === 2) { image = '/res/image/ic_wifi_signal_2_dark.png'; logUtil.info('securityType 1 and signal level 2'); }; - if (result[j].securityType == 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) == 1) { + if (result[j].securityType === 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) === 1) { image = '/res/image/ic_wifi_signal_1_dark.png'; logUtil.info('securityType 1 and signal level 1'); }; - if (result[j].securityType == 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) == 0) { + if (result[j].securityType === 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) === 0) { image = '/res/image/ic_wifi_signal_1_dark.png'; logUtil.info('securityType 1 and signal level 1'); }; - if (result[j].securityType != 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) == 4) { + if (result[j].securityType !== 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) === 4) { image = '/res/image/ic_wifi_lock_signal_4_dark.png'; logUtil.info('securityType lock and level 4'); }; - if (result[j].securityType != 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) == 3) { + if (result[j].securityType !== 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) === 3) { image = '/res/image/ic_wifi_lock_signal_3_dark.png'; logUtil.info('securityType lock and level 3'); }; - if (result[j].securityType != 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) == 2) { + if (result[j].securityType !== 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) === 2) { image = '/res/image/ic_wifi_lock_signal_2_dark.png'; logUtil.info('securityType lock and level 2'); }; - if (result[j].securityType != 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) == 1) { + if (result[j].securityType !== 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) === 1) { image = '/res/image/ic_wifi_lock_signal_1_dark.png'; logUtil.info('securityType lock and level 1'); }; - if (result[j].securityType != 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) == 0) { + if (result[j].securityType !== 1 && WifiNativeJs.getSignalLevel(result[j].rssi, result[j].band) === 0) { image = '/res/image/ic_wifi_lock_signal_1_dark.png'; logUtil.info('securityType lock and level 1'); }; @@ -113,6 +111,7 @@ export default class WifiModel extends BaseModel { settingValue: '', settingArrow: image, settingDefaultValue: '', + settingArrowStyle:'commonHeadImage', dividerIsShow: true, settingType: 1, bssid: result[j].bssid, @@ -124,7 +123,7 @@ export default class WifiModel extends BaseModel { logUtil.info('original mWifiList :' + JSON.stringify(mWifiList)); for (let i = 0; i < mWifiList.length; i++) { let position = this.getItemPosition(remdupWifiList, mWifiList[i].settingTitle); - if (position != -1) { + if (position !== -1) { // the same SSID,Take the strong signal if (remdupWifiList[position].signalLevel < mWifiList[i].signalLevel) { remdupWifiList.splice(position, 1); @@ -136,13 +135,10 @@ export default class WifiModel extends BaseModel { }; logUtil.info('remove duplicate ssid remdupWifiList: ' + JSON.stringify(remdupWifiList)); }); - logUtil.info('get to wifi information end---->'); + logUtil.info('get to wifi information end ---->'); return remdupWifiList; }; - /** - * Get the next value corresponding to SSID - */ getItemPosition(list, ssid) { for (let i = 0; i < list.length; i++) { if (ssid == list[i].settingTitle) { @@ -156,42 +152,6 @@ export default class WifiModel extends BaseModel { logUtil.info('[wifi_js_test] connect to wifi'); return WifiNativeJs.connectToDevice(obj); }; - /** - * wifi monitoring events - */ - wifiStatusListener() { - logUtil.info('wifi status listener') - Subscriber.createSubscriber(mCommonEventSubscribeInfo, - this.CreateSubscriberCallBack.bind(this)); - }; - - CreateSubscriberCallBack(err, data) { - logUtil.info('subscriber subscribe'); - mCommonEventSubscriber = data; - Subscriber.subscribe(mCommonEventSubscriber, this.SubscriberCallBack.bind(this)); - }; - - SubscriberCallBack(err, data) { - logUtil.info('subscriber call back') - logUtil.info('==========================>SubscriberCallBack event = ' + data.event); - logUtil.info('==========================>SubscriberCallBack data = ' + JSON.stringify(data)); - logUtil.info('==========================>SubscriberCallBack data code = ' + data.code); - wifiCode = data.code; - logUtil.info('wifi data code value' + wifiCode); - }; - /** - * get wifi code value - */ - getWifiCode() { - logUtil.info('wifi code value' + wifiCode); - return wifiCode; - }; - - unSubscriberListener() { - Subscriber.unsubscribe(mCommonEventSubscriber, () => { - logUtil.info('wifi unsubscribe'); - }); - }; disConnect() { logUtil.info('netWork disconnect'); diff --git a/entry/src/main/js/default/pages/wifi/wifi.js b/entry/src/main/js/default/pages/wifi/wifi.js index b28eadbd..06d5dc99 100755 --- a/entry/src/main/js/default/pages/wifi/wifi.js +++ b/entry/src/main/js/default/pages/wifi/wifi.js @@ -1,3 +1,4 @@ +// @ts-nocheck /** * Copyright (c) 2021 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,10 +17,23 @@ import router from '@system.router'; import BaseParseConfModel from '../../model/baseParseConfImpl/BaseParseConfModel.js'; import LogUtil from '../../common/baseUtil/LogUtil.js'; import WifiModel from '../../model/wifiImpl/WifiModel.js'; +import Subscriber from '@ohos.commonevent'; let baseParseConfModel = new BaseParseConfModel(); let logUtil = new LogUtil(); let wifiModel = new WifiModel(); +let beginTime; +let endTime; +let mCommonEventSubscriber = null; +let mCommonEventSubscribeInfo = { + events: ["usual.event.wifi.CONN_STATE"] +}; +let index; +let connectImage; +let connectName; +let connectBssid; +let connectSecurityType; + globalThis.$globalT = null; @@ -70,9 +84,11 @@ export default { onInit() { logUtil.info('wifiListInfo onInit start--->'); - wifiModel.wifiStatusListener(); + beginTime = new Date(); + this.wifiStatusListener(); globalThis.$globalT = this.$t.bind(this); - this.wifiListInfo = baseParseConfModel.getJsonData('/data/accounts/account_0/applications/com.ohos.settings/com.ohos.settings/assets/entry/resources/rawfile/wifi.json'); + this.wifiListInfo = baseParseConfModel.getJsonData('/data/accounts/account_0/applications' + + '/com.ohos.settings/com.ohos.settings/assets/entry/resources/rawfile/wifi.json'); for (let key in this.wifiListInfo) { let settingAlias = this.wifiListInfo[key].settingAlias; this.wifiListInfo[key].settingTitle = this.$t('strings.'.concat(settingAlias)); @@ -107,17 +123,15 @@ export default { this.switch_on = false; }; }; + endTime = new Date(); + console.log("setting wifi onInit:"+(endTime-beginTime)+"ms"); logUtil.info('wifiListInfo onInit end--->'); }, - /** - * back - */ + back() { router.back(); }, - /** - * wifi switch button - */ + switchClick() { logUtil.info('switchClick start ---->'); for (let key in this.wifiListInfo) { @@ -169,20 +183,15 @@ export default { }; logUtil.info('switchClick end ---->'); }, - /** - * clear scan wifi list - */ + clearScanInfo() { logUtil.info('clear scan wifiList start---->'); this.wifiList = []; logUtil.info('clear scan wifiList end---->'); }, - /** - * Select WiFi to enter the details page - * @param idx - * @return - */ + clickToSecret(idx) { + this.sleep(2000); logUtil.info('wifi clickToSecret start index:' + idx + ' settingTitle:' + this.wifiList[idx].settingTitle); let title = this.wifiList[idx].settingTitle; let image = this.wifiList[idx].settingArrow; @@ -193,13 +202,13 @@ export default { this.connected = globalThis.$globalT('strings.connected'); logUtil.info('wifi constructor this.connected:' + this.connected); }; - if (this.wifiList[0].settingSummary == this.connected) { - if (wifiModel.disConnect() == true) { - logUtil.info("click disconnect success get wifi code" + wifiModel.getWifiCode()); - } else { - logUtil.info("disconnect failed : " + wifiModel.disConnect()) - } + if (this.wifiList[idx].settingSummary == this.connected) { + return; + }; + if (securityType !== 1) { + return; }; + let obj = { "ssid": title, "bssid": bssid, @@ -211,39 +220,88 @@ export default { logUtil.info("[wifi_js_test] connect to wifi failed"); return; }; - logUtil.info('before wifi connectToDevice status code---->' + wifiModel.getWifiCode()); + + this.sleep(2000); + if (wifiModel.connectToDevice(obj)) { + this.wifiList[0].settingSummary = ''; logUtil.info("[wifi_js_test] connect to wifi " + JSON.stringify(obj)); - let that = this - this.listenerMark = setTimeout(function () { - if (wifiModel.getWifiCode() == 3) { - that.wifiList.unshift({ - settingIcon: '', - settingSummary: that.connected, - settingTitle: title, - settingValue: '', - settingArrow: image, - settingDefaultValue: '', - dividerIsShow: true, - settingType: 1, - bssid: bssid, - securityType: securityType, - }); - for (let key in that.wifiList) { - if (key == (idx + 1)) { - that.wifiList.splice(key,1) - }; - if (key != 0) { - that.wifiList[key].settingSummary = ''; - }; - }; - }; - clearTimeout(this.listenerMark); - }, 1000); + connectBssid = bssid; + connectImage = image; + connectName = title; + index = idx; + connectSecurityType = securityType + }; logUtil.info('clickToSecret end:'); }, - onCreate() { + + /** + * wifi monitoring events + */ + wifiStatusListener() { + logUtil.info('wifi status listener') + Subscriber.createSubscriber(mCommonEventSubscribeInfo, + this.CreateSubscriberCallBack.bind(this)); + }, + + CreateSubscriberCallBack(err, data) { + logUtil.info('subscriber subscribe'); + mCommonEventSubscriber = data; + Subscriber.subscribe(mCommonEventSubscriber, this.SubscriberCallBack.bind(this)); + }, + + SubscriberCallBack(err, data) { + logUtil.info('subscriber call back') + logUtil.info('==========================>SubscriberCallBack event = ' + data.event); + logUtil.info('==========================>SubscriberCallBack data = ' + JSON.stringify(data)); + logUtil.info('==========================>SubscriberCallBack data code = ' + data.code); + if (globalThis.$globalT) { + this.connected = globalThis.$globalT('strings.connected'); + logUtil.info('wifi constructor this.connected:' + this.connected); + }; + + if (data.code === 3) { + logUtil.info('wifi code into'); + this.wifiList.unshift({ + settingIcon: '', + settingSummary: this.connected, + settingTitle: connectName, + settingValue: '', + settingArrow: connectImage, + settingArrowStyle: 'commonHeadImage', + settingDefaultValue: '', + dividerIsShow: true, + settingType: 1, + bssid: connectBssid, + securityType: connectSecurityType, + }); + for (let key in this.wifiList) { + if (key == (index + 1)) { + this.wifiList.splice(key,1) + }; + if (key != 0) { + this.wifiList[key].settingSummary = ''; + }; + }; + + } + }, + + unSubscriberListener() { + Subscriber.unsubscribe(mCommonEventSubscriber, () => { + logUtil.info('wifi unsubscribe'); + }); + }, + + sleep(delay) { + let start = (new Date()).getTime(); + while ((new Date()).getTime() - start < delay) { + continue; + } + }, + + onCreate() { logUtil.info('setting wifi onCreate') }, onReady() { @@ -257,7 +315,7 @@ export default { }, onDestroy() { logUtil.info("setting wifi onDestroy start"); - wifiModel.unSubscriberListener(); + this.unSubscriberListener(); logUtil.info('setting wifi onDestroy end') }, } diff --git a/entry/src/main/resources/rawfile/settinglist.json b/entry/src/main/resources/rawfile/settinglist.json index 7a8e686f..81682844 100755 --- a/entry/src/main/resources/rawfile/settinglist.json +++ b/entry/src/main/resources/rawfile/settinglist.json @@ -1,7 +1,7 @@ [ { "settingIcon": "/res/image/ic_settings_wifi.png", - "settingTitle": "WIFI", + "settingTitle": "WLAN", "settingAlias": "wifiTab", "settingValue": "", "settingArrow": "/res/image/ic_settings_arrow.png", -- Gitee