Skip to content

Commit bdd90f9

Browse files
author
ccharlesren
committed
控制台配网和客户端显示不一致问题
文档:https://docs.qq.com/doc/DYWdoR0R6VEd5a1dl 体验时间:2020.12.01 问题- 1 -4 Change-Id: I91ad8c2c1f480bcc9357fca92ed6bbebf26b9a8b
1 parent 66dee89 commit bdd90f9

10 files changed

+219
-33
lines changed

Source/LinkApp/Classes/Module/DistributionNetwork/Controller/TIoTScanlViewController.m

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,13 @@ - (void)processQRCodeResult:(NSString *)result {
155155
[self bindDevice:signature];
156156
} else {
157157
if ([page isEqualToString:@"softap"]) {
158-
[self.navigationController popViewControllerAnimated:YES];
159-
[HXYNotice postChangeAddDeviceType:1];
158+
// [self.navigationController popViewControllerAnimated:YES];
159+
// [HXYNotice postChangeAddDeviceType:1];
160+
[self getProductsConfig:productId];
160161
} else if ([page isEqualToString:@"smartconfig"]) {
161-
[self.navigationController popViewControllerAnimated:YES];
162-
[HXYNotice postChangeAddDeviceType:0];
162+
// [self.navigationController popViewControllerAnimated:YES];
163+
// [HXYNotice postChangeAddDeviceType:0];
164+
[self getProductsConfig:productId];
163165
} else if ([page isEqualToString:@"adddevice"] && ![NSString isNullOrNilWithObject:productId]){ //设备批量生产的二维码扫描
164166
[self getProductsConfig:productId];
165167
}else {//未知page

Source/LinkApp/Classes/Module/DistributionNetwork/Controller/TIoTSoftapConnectViewController.m

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ @interface TIoTSoftapConnectViewController ()
1515

1616
@property (nonatomic,strong) UIButton *connectB;//连接按钮
1717
@property (nonatomic,strong) UIButton *nextB;//下一步按钮
18+
@property (nonatomic, strong) UILabel *WiFiNameLabel;
1819

1920
@end
2021

@@ -68,19 +69,42 @@ - (void)setupUI{
6869
make.top.equalTo(tipLab.mas_bottom).offset(30);
6970
}];
7071

71-
72+
CGFloat kImageScale = 0.866667; //高/宽
73+
CGFloat kPadding = 30;
7274
UIImageView *tipImageView = [[UIImageView alloc] initWithImage:[UIImage imageWithColor:[UIColor redColor]]];
7375
[tipImageView setImage:[UIImage imageNamed:@"wifieg"]];
74-
tipImageView.contentMode = UIViewContentModeCenter;
76+
// tipImageView.contentMode = UIViewContentModeCenter;
7577
[scroll addSubview:tipImageView];
7678
[tipImageView mas_makeConstraints:^(MASConstraintMaker *make) {
7779
make.top.equalTo(tip1.mas_bottom).offset(20);
7880
make.centerX.equalTo(scroll);
79-
make.left.equalTo(scroll).offset(30).priorityLow();
80-
make.right.equalTo(scroll).offset(-30).priorityLow();
81+
make.left.equalTo(scroll.mas_left).offset(kPadding);
82+
make.right.equalTo(scroll.mas_right).offset(-kPadding);
83+
make.height.mas_equalTo(tipImageView.mas_width).multipliedBy(kImageScale);
8184
// make.height.mas_equalTo(200);
8285
}];
8386

87+
CGFloat kWiFiNameHeithtScale = 0.5;//0.487179;//380/780 WiFi 距离顶部高度比例
88+
CGFloat kWiFiNameWidthtScale = 0.1;//90/900 WiFi 距离左边距比例
89+
CGFloat kWiFiNameHeitht = 0.0769230;//60/780 WiFi 高度比例
90+
CGFloat kWiFiNameWidth = 0.6666;//200/900; WiFi 宽度比例
91+
CGFloat kImageViewWidth = kScreenWidth - kPadding*2; //imageview 宽度
92+
CGFloat kImageViewheight = kImageViewWidth * kImageScale; //image 高度
93+
94+
CGFloat kLeftPadding = kWiFiNameWidthtScale * kImageViewWidth; // 转换到image view的左边距
95+
CGFloat kTopPadding = kWiFiNameHeithtScale * kImageViewheight; //转换到image view的顶部距离
96+
CGFloat kWiFiHeitht = kWiFiNameHeitht * kImageViewheight; //转换到image view的高度
97+
CGFloat kWiFiWidth = kWiFiNameWidth * kImageViewWidth; //转换到image view的宽度
98+
99+
self.WiFiNameLabel = [[UILabel alloc]init];
100+
self.WiFiNameLabel.text = @"tcloud_XXX";
101+
[tipImageView addSubview:self.WiFiNameLabel];
102+
[self.WiFiNameLabel mas_updateConstraints:^(MASConstraintMaker *make) {
103+
make.left.equalTo(tipImageView.mas_left).offset(kLeftPadding);
104+
make.top.equalTo(tipImageView.mas_top).offset(kTopPadding);
105+
make.height.mas_equalTo(kWiFiHeitht);
106+
make.width.mas_equalTo(kWiFiWidth);
107+
}];
84108

85109
UILabel *tip2 = [[UILabel alloc] init];
86110
tip2.text = NSLocalizedString(@"soft_ap_hotspot_step_2", @"2.返回APP,添加设备");

Source/LinkApp/Classes/Module/NewDistributionNetwork/Controller/TIoTConfigHardwareViewController.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ NS_ASSUME_NONNULL_BEGIN
1616
@property (nonatomic, assign) TIoTConfigHardwareStyle configHardwareStyle;
1717
@property (nonatomic, copy) NSString *roomId;
1818
@property (nonatomic, strong) NSDictionary *configurationData;
19+
20+
@property (nonatomic, assign) BOOL isDistributeNetFailure; //配网失败,切换配网方式时候,再新的配网流程中,用来判断返回首页还是上个页面
1921
@end
2022

2123
NS_ASSUME_NONNULL_END

Source/LinkApp/Classes/Module/NewDistributionNetwork/Controller/TIoTConfigHardwareViewController.m

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,12 +197,39 @@ - (void)getSoftApToken {
197197

198198
#pragma mark eventResponse
199199

200+
- (void)nav_customBack {
201+
//配网失败,切换配网方式时候,再新的配网流程中,用来判断返回首页还是上个页面
202+
if (self.isDistributeNetFailure == YES) {
203+
// 查找导航栏里的控制器数组,找到返回查找的控制器,没找到返回nil;
204+
UIViewController *vc = [self findViewController:@"TIoTNewAddEquipmentViewController"];
205+
if (vc) {
206+
// 找到需要返回的控制器的处理方式
207+
[self.navigationController popToViewController:vc animated:YES];
208+
}else{
209+
// 没找到需要返回的控制器的处理方式
210+
[self.navigationController popToRootViewControllerAnimated:YES];
211+
}
212+
}else {
213+
[self.navigationController popViewControllerAnimated:YES];
214+
}
215+
}
216+
217+
- (id)findViewController:(NSString*)className{
218+
for (UIViewController *viewController in self.navigationController.viewControllers) {
219+
if ([viewController isKindOfClass:NSClassFromString(className)]) {
220+
return viewController;
221+
}
222+
}
223+
return nil;
224+
}
225+
200226
- (void)nextClick:(UIButton *)sender {
201227
TIoTTargetWIFIViewController *vc = [[TIoTTargetWIFIViewController alloc] init];
202228
vc.step = 2;
203229
vc.configHardwareStyle = _configHardwareStyle;
204230
vc.currentDistributionToken = self.networkToken;
205231
vc.roomId = self.roomId;
232+
vc.configConnentData = self.configurationData;
206233
[self.navigationController pushViewController:vc animated:YES];
207234
}
208235

@@ -211,7 +238,7 @@ - (void)nextClick:(UIButton *)sender {
211238
- (void)setConfigHardwareStyle:(TIoTConfigHardwareStyle)configHardwareStyle {
212239
_configHardwareStyle = configHardwareStyle;
213240
switch (configHardwareStyle) {
214-
case TIoTConfigHardwareStyleSoftAP:
241+
case TIoTConfigHardwareStyleSoftAP:
215242
{
216243

217244
NSString *softAPExploreString = self.configurationData[@"WifiSoftAP"][@"hardwareGuide"][@"message"];

Source/LinkApp/Classes/Module/NewDistributionNetwork/Controller/TIoTConfigResultViewController.m

Lines changed: 112 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
#import "TIoTWebVC.h"
1313
#import "TIoTAppEnvironment.h"
14+
#import "TIoTConfigHardwareViewController.h"
1415

1516
@interface TIoTConfigResultViewController ()
1617

@@ -22,7 +23,7 @@ @interface TIoTConfigResultViewController ()
2223
@property (nonatomic, strong) NSDictionary *dataDic;
2324

2425
@property (nonatomic, strong) NSDictionary *devieceData;
25-
26+
@property (nonatomic, strong) NSDictionary *configData;
2627
@end
2728

2829
@implementation TIoTConfigResultViewController
@@ -152,7 +153,8 @@ - (void)setupUI{
152153
}
153154

154155
- (void)nav_customBack {
155-
[self nextClick:nil];
156+
// [self nextClick:nil];
157+
[self goBackClick:YES];
156158
}
157159

158160
- (id)findViewController:(NSString*)className{
@@ -168,20 +170,32 @@ - (id)findViewController:(NSString*)className{
168170

169171
- (void)changeClick:(UIButton *)sender {
170172
// 查找导航栏里的控制器数组,找到返回查找的控制器,没找到返回nil;
171-
UIViewController *vc = [self findViewController:@"TIoTNewAddEquipmentViewController"];
172-
if (vc) {
173-
// 找到需要返回的控制器的处理方式
174-
[self.navigationController popToViewController:vc animated:YES];
175-
}else{
176-
// 没找到需要返回的控制器的处理方式
177-
[self.navigationController popToRootViewControllerAnimated:YES];
178-
}
173+
// UIViewController *vc = [self findViewController:@"TIoTNewAddEquipmentViewController"];
174+
// if (vc) {
175+
// // 找到需要返回的控制器的处理方式
176+
// [self.navigationController popToViewController:vc animated:YES];
177+
// }else{
178+
// // 没找到需要返回的控制器的处理方式
179+
// [self.navigationController popToRootViewControllerAnimated:YES];
180+
// }
179181
if (!_success) {
182+
// if (_configHardwareStyle == TIoTConfigHardwareStyleSoftAP) {
183+
//// [HXYNotice postChangeAddDeviceType:0];
184+
//// [self.navigationController popViewControllerAnimated:YES];
185+
// [self getProductsConfig:self.devieceData[@"profile"][@"ProductId"]?:@""withType:0];
186+
// } else if (_configHardwareStyle == TIoTConfigHardwareStyleSmartConfig) {
187+
//// [HXYNotice postChangeAddDeviceType:1];
188+
//// [self.navigationController popViewControllerAnimated:YES];
189+
// [self getProductsConfig:self.devieceData[@"profile"][@"ProductId"]?:@""withType:1];
190+
// }
191+
180192
if (_configHardwareStyle == TIoTConfigHardwareStyleSoftAP) {
181-
[HXYNotice postChangeAddDeviceType:0];
182-
} else if (_configHardwareStyle == TIoTConfigHardwareStyleSmartConfig) {
183-
[HXYNotice postChangeAddDeviceType:1];
193+
[self changeConfig:NSLocalizedString(@"smart_config", @"智能配网")];
194+
195+
}else if (_configHardwareStyle == TIoTConfigHardwareStyleSmartConfig) {
196+
[self changeConfig:NSLocalizedString(@"soft_ap", @"自助配网")];
184197
}
198+
185199
}
186200
}
187201

@@ -207,9 +221,8 @@ - (void)moreErrorResult:(UIButton *)sender {
207221
}];
208222
}
209223

210-
- (void)nextClick:(UIButton *)sender {
211-
212-
if (!_success) {
224+
- (void)goBackClick:(BOOL)isBack {
225+
if (isBack) {
213226
// 查找导航栏里的控制器数组,找到返回查找的控制器,没找到返回nil;
214227
UIViewController *vc = [self findViewController:@"TIoTNewAddEquipmentViewController"];
215228
if (vc) {
@@ -219,14 +232,94 @@ - (void)nextClick:(UIButton *)sender {
219232
// 没找到需要返回的控制器的处理方式
220233
[self.navigationController popToRootViewControllerAnimated:YES];
221234
}
235+
}
236+
}
237+
238+
- (void)nextClick:(UIButton *)sender {
239+
240+
if (!_success) {
241+
// 查找导航栏里的控制器数组,找到返回查找的控制器,没找到返回nil;
242+
// UIViewController *vc = [self findViewController:@"TIoTNewAddEquipmentViewController"];
243+
// if (vc) {
244+
// // 找到需要返回的控制器的处理方式
245+
// [self.navigationController popToViewController:vc animated:YES];
246+
// }else{
247+
// // 没找到需要返回的控制器的处理方式
248+
// [self.navigationController popToRootViewControllerAnimated:YES];
249+
// }
250+
// if (_configHardwareStyle == TIoTConfigHardwareStyleSoftAP) {
251+
//// [HXYNotice postChangeAddDeviceType:1];
252+
//// [self.navigationController popViewControllerAnimated:YES];
253+
// [self getProductsConfig:self.devieceData[@"profile"][@"ProductId"]?:@""];
254+
// } else if (_configHardwareStyle == TIoTConfigHardwareStyleSmartConfig) {
255+
//// [HXYNotice postChangeAddDeviceType:0];
256+
//// [self.navigationController popViewControllerAnimated:YES];
257+
// [self getProductsConfig:self.devieceData[@"profile"][@"ProductId"]?:@""];
258+
// }
259+
222260
if (_configHardwareStyle == TIoTConfigHardwareStyleSoftAP) {
223-
[HXYNotice postChangeAddDeviceType:1];
224-
} else if (_configHardwareStyle == TIoTConfigHardwareStyleSmartConfig) {
225-
[HXYNotice postChangeAddDeviceType:0];
261+
262+
[self changeConfig:NSLocalizedString(@"soft_ap", @"自助配网")];
263+
}else if (_configHardwareStyle == TIoTConfigHardwareStyleSmartConfig) {
264+
265+
[self changeConfig:NSLocalizedString(@"smart_config", @"智能配网")];
226266
}
267+
227268
} else {
228269
[self.navigationController popToRootViewControllerAnimated:YES];
229270
}
230271
}
231272

273+
#pragma mark - 配网请求流程
274+
- (void)getProductsConfig:(NSString *)productId{
275+
[[TIoTRequestObject shared] post:AppGetProductsConfig Param:@{@"ProductIds":@[productId]} success:^(id responseObject) {
276+
277+
NSArray *data = responseObject[@"Data"];
278+
if (data.count > 0) {
279+
NSDictionary *config = [NSString jsonToObject:data[0][@"Config"]];
280+
self.configData = [[NSDictionary alloc]initWithDictionary:config];
281+
WCLog(@"AppGetProductsConfig config%@", config);
282+
NSArray *wifiConfTypeList = config[@"WifiConfTypeList"];
283+
if (wifiConfTypeList.count > 0) {
284+
NSString *configType = wifiConfTypeList.firstObject;
285+
if ([configType isEqualToString:@"softap"]) {
286+
[self jumpConfigVC:NSLocalizedString(@"soft_ap", @"自助配网")];
287+
return;
288+
}
289+
}
290+
}
291+
[self jumpConfigVC:NSLocalizedString(@"smart_config", @"智能配网")];
292+
WCLog(@"AppGetProductsConfig responseObject%@", responseObject);
293+
294+
} failure:^(NSString *reason, NSError *error,NSDictionary *dic) {
295+
// [self jumpConfigVC:NSLocalizedString(@"smart_config", @"智能配网")];
296+
[self jumpConfigVC:NSLocalizedString(@"smart_config", @"智能配网")];
297+
}];
298+
}
299+
300+
- (void)jumpConfigVC:(NSString *)title{
301+
TIoTConfigHardwareViewController *vc = [[TIoTConfigHardwareViewController alloc] init];
302+
vc.configurationData = self.configData;
303+
if ([title isEqualToString:NSLocalizedString(@"smart_config", @"智能配网")]) {
304+
vc.configHardwareStyle = TIoTConfigHardwareStyleSmartConfig;
305+
} else {
306+
vc.configHardwareStyle = TIoTConfigHardwareStyleSoftAP;
307+
}
308+
// vc.roomId = self.roomId?:@"";
309+
[self.navigationController pushViewController:vc animated:YES];
310+
}
311+
312+
- (void)changeConfig:(NSString *)title{
313+
TIoTConfigHardwareViewController *vc = [[TIoTConfigHardwareViewController alloc] init];
314+
vc.configurationData = self.devieceData;
315+
if ([title isEqualToString:NSLocalizedString(@"smart_config", @"智能配网")]) {
316+
vc.configHardwareStyle = TIoTConfigHardwareStyleSmartConfig;
317+
} else {
318+
vc.configHardwareStyle = TIoTConfigHardwareStyleSoftAP;
319+
}
320+
// vc.roomId = self.roomId?:@"";
321+
vc.isDistributeNetFailure = YES;
322+
[self.navigationController pushViewController:vc animated:YES];
323+
}
324+
232325
@end

Source/LinkApp/Classes/Module/NewDistributionNetwork/Controller/TIoTDeviceWIFITipViewController.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ NS_ASSUME_NONNULL_BEGIN
2222
@property (nonatomic, copy) NSString *currentDistributionToken;
2323

2424
@property (nonatomic, copy) NSDictionary *connectGuideData;
25+
26+
@property (nonatomic, copy) NSDictionary *configdata; //所有数据
2527
@end
2628

2729
NS_ASSUME_NONNULL_END

Source/LinkApp/Classes/Module/NewDistributionNetwork/Controller/TIoTDeviceWIFITipViewController.m

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ @interface TIoTDeviceWIFITipViewController ()
1919
@property (nonatomic, strong) UIScrollView *scrollView;
2020
@property (nonatomic, strong) UIImageView *imageView;
2121
@property (nonatomic, strong) UILabel *stepLabel;
22-
22+
@property (nonatomic, strong) UILabel *WiFiName; //获取设备WiFi名称
2323
@end
2424

2525
@implementation TIoTDeviceWIFITipViewController
@@ -68,14 +68,45 @@ - (void)setupUI{
6868
make.height.mas_equalTo(24);
6969
}];
7070

71+
CGFloat kImageScale = 0.866667; //高/宽
72+
CGFloat kPadding = 20; //image 边距
7173
self.imageView = [[UIImageView alloc] init];
7274
self.imageView.image = [UIImage imageNamed:@"wifieg"];
7375
[self.view addSubview:self.imageView];
7476
[self.imageView mas_makeConstraints:^(MASConstraintMaker *make) {
7577
make.top.equalTo(topicLabel.mas_bottom).offset(20);
76-
make.left.equalTo(self.scrollView).offset(20);
77-
make.right.equalTo(self.scrollView).offset(-20);
78-
make.height.mas_equalTo(self.imageView.mas_width).multipliedBy(0.8667);
78+
make.left.equalTo(self.scrollView).offset(kPadding);
79+
make.right.equalTo(self.scrollView).offset(-kPadding);
80+
make.height.mas_equalTo(self.imageView.mas_width).multipliedBy(kImageScale);
81+
}];
82+
83+
CGFloat kWiFiNameHeithtScale = 0.5;//0.487179;//380/780 WiFi 距离顶部高度比例
84+
CGFloat kWiFiNameWidthtScale = 0.1;//90/900 WiFi 距离左边距比例
85+
CGFloat kWiFiNameHeitht = 0.0769230;//60/780 WiFi 高度比例
86+
CGFloat kWiFiNameWidth = 0.6666;//200/900; WiFi 宽度比例
87+
CGFloat kImageViewWidth = kScreenWidth - kPadding*2; //imageview 宽度
88+
CGFloat kImageViewheight = kImageViewWidth * kImageScale; //image 高度
89+
90+
CGFloat kLeftPadding = kWiFiNameWidthtScale * kImageViewWidth; // 转换到image view的左边距
91+
CGFloat kTopPadding = kWiFiNameHeithtScale * kImageViewheight; //转换到image view的顶部距离
92+
CGFloat kWiFiHeitht = kWiFiNameHeitht * kImageViewheight; //转换到image view的高度
93+
CGFloat kWiFiWidth = kWiFiNameWidth * kImageViewWidth; //转换到image view的宽度
94+
95+
self.WiFiName = [[UILabel alloc]init];
96+
self.WiFiName.backgroundColor = [UIColor whiteColor];
97+
if (![NSString isNullOrNilWithObject:self.connectGuideData[@"apName"]]) {
98+
self.WiFiName.text = self.connectGuideData[@"apName"];
99+
}else {
100+
self.WiFiName.text = @"tcloud_XXX";
101+
}
102+
103+
self.WiFiName.font = [UIFont systemFontOfSize:18];
104+
[self.imageView addSubview:self.WiFiName];
105+
[self.WiFiName mas_updateConstraints:^(MASConstraintMaker *make) {
106+
make.left.equalTo(self.imageView.mas_left).offset(kLeftPadding);
107+
make.top.equalTo(self.imageView.mas_top).offset(kTopPadding);
108+
make.height.mas_equalTo(kWiFiHeitht);
109+
make.width.mas_equalTo(kWiFiWidth);
79110
}];
80111

81112
self.stepLabel = [[UILabel alloc] init];
@@ -129,6 +160,7 @@ - (void)nextClick:(UIButton *)sender {
129160
vc.roomId = self.roomId;
130161
vc.currentDistributionToken = self.currentDistributionToken;
131162
vc.softApWifiInfo = [self.wifiInfo copy];
163+
vc.configConnentData = self.configdata;
132164
[self.navigationController pushViewController:vc animated:YES];
133165

134166
}

Source/LinkApp/Classes/Module/NewDistributionNetwork/Controller/TIoTStartConfigViewController.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ NS_ASSUME_NONNULL_BEGIN
1919
/// 绑定房间id
2020
@property (nonatomic, copy) NSString *roomId;
2121

22+
@property (nonatomic, copy) NSDictionary *connectGuideData;
2223
@end
2324

2425
NS_ASSUME_NONNULL_END

0 commit comments

Comments
 (0)