萤石云 iOSSDK,移植跨平台相关工程
Davin
2024-12-18 b4e1288a9b63eb820e9c9489c56aac4bf6b31067
EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceResultViewController.m
@@ -9,12 +9,12 @@
#import "EZDeviceResultViewController.h"
#import "UIImage+GIF.h"
#import "EZProbeDeviceInfo.h"
#import <EZOpenSDKFramework/EZProbeDeviceInfo.h>
#import "DDKit.h"
#import "EZWifiConfigViewController.h"
#import "EZWifiTipsViewController.h"
#import "MBProgressHUD.h"
#import "EZSDK.h"
@interface EZDeviceResultViewController ()<UIAlertViewDelegate>
@@ -29,6 +29,21 @@
@property (nonatomic,assign) BOOL supportApMode;
@property (nonatomic,assign) BOOL supportSmartMode;
@property (nonatomic,assign) BOOL supportSoundMode;
@property (nonatomic,strong) UIView *tipView ;//配网提示view
@property (nonatomic,strong) UIImageView *step1TipImgV ;//步骤1提示图view
@property (nonatomic,strong) UIImageView *step1ImgV ;//步骤1图view
@property (nonatomic,strong) UILabel *step1DescribeL ;//步骤1描述lable
@property (nonatomic,strong) UIImageView *step2TipImgV ;//步骤2提示图view
@property (nonatomic,strong) UIImageView *step2ImgV ;//步骤2图view
@property (nonatomic,strong) UILabel *step2DescribeL ;//步骤2描述lable
@property (nonatomic,strong) UIView *btnBackView ;//按钮背景view
@property (nonatomic,strong) UIButton *connectedBtn;//已连接按钮
@end
@implementation EZDeviceResultViewController
@@ -48,6 +63,9 @@
    self.actionButton.hidden = YES;
    
    [self doSearchDevice];
    //隐藏状态图
    self.resultImageView.hidden=YES;
}
- (void)didReceiveMemoryWarning {
@@ -82,12 +100,21 @@
        [GlobalKit shareKit].deviceVerifyCode = [alertView textFieldAtIndex:0].text;
        __weak MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
        hud.labelText = NSLocalizedString(@"ad_adding_msg", @"正在添加,请稍候...");
        [EZOPENSDK addDevice:[GlobalKit shareKit].deviceSerialNo
                  verifyCode:[GlobalKit shareKit].deviceVerifyCode
                  completion:^(NSError *error) {
                      [hud hide:YES];
                      [self handleTheError:error];
                  }];
//        [EZOPENSDK addDevice:[GlobalKit shareKit].deviceSerialNo
//                  verifyCode:[GlobalKit shareKit].deviceVerifyCode
//                  completion:^(NSError *error) {
//                      [hud hide:YES];
//                      [self handleTheError:error];
//                  }];
        [EZHttpUtil.sharedManager addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo
                   verifyCode:[GlobalKit shareKit].deviceVerifyCode
                   completion:^(ResponseData *responseData) {
                       [hud hide:YES];
                       [self handleTheError:responseData];
                   }];
    }
    else if (alertView.tag == 0xbb && buttonIndex == 1)
    {
@@ -112,12 +139,36 @@
        {
            __weak MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
            hud.labelText = NSLocalizedString(@"ad_adding_msg", @"正在添加,请稍候...");
            [EZOPENSDK addDevice:[GlobalKit shareKit].deviceSerialNo
                      verifyCode:[GlobalKit shareKit].deviceVerifyCode
                      completion:^(NSError *error) {
                          [hud hide:YES];
                          [self handleTheError:error];
                      }];
//            [EZOPENSDK addDevice:[GlobalKit shareKit].deviceSerialNo
//                      verifyCode:[GlobalKit shareKit].deviceVerifyCode
//                      completion:^(NSError *error) {
//                          [hud hide:YES];
//                          [self handleTheError:error];
//                      }];
            if ([GlobalKit shareKit].deviceType==HDLEZDeviceType_Door) {//为门禁设备(需要验证门锁)
                [EZHttpUtil.sharedManager verifyLocalLockByHDL:[GlobalKit shareKit].deviceSerialNo completion:^(ResponseData * _Nonnull responseData) {
                    [hud hide:YES];
                    if (responseData.success) {
                        self.resultLabel.numberOfLines=2;
                        self.resultLabel.adjustsFontSizeToFitWidth=YES;
                        self.resultLabel.text = NSLocalizedString(@"ad_result_verify_local_lock",@"请在2分钟之内校验已添加的主用户指纹、密钥或感应卡,校验完成请点击已校验按钮");
                        [self.actionButton setTitle:NSLocalizedString(@"ad_verified", @"已校验") forState:UIControlStateNormal];
                    }else{
                        [self handleTheError:responseData];
                    }
                    NSLog(@"调用验证接口返回:%@",responseData.data);
                }];
            }else{
                [EZHttpUtil.sharedManager addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo
                           verifyCode:[GlobalKit shareKit].deviceVerifyCode
                           completion:^(ResponseData *responseData) {
                               [hud hide:YES];
                               [self handleTheError:responseData];
                           }];
            }
        }
        else
        {
@@ -126,6 +177,22 @@
            alertView.tag = 0xaa;
            [alertView show];
        }
    }
    else if([self.actionButton.titleLabel.text isEqualToString:NSLocalizedString(@"ad_verified",@"已校验")])
    {
        __weak MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
        hud.labelText = NSLocalizedString(@"ad_adding_msg", @"正在添加,请稍候...");
        [EZHttpUtil.sharedManager addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo
                   verifyCode:[GlobalKit shareKit].deviceVerifyCode
                   completion:^(ResponseData *responseData) {
                       [hud hide:YES];
                if (!responseData.success){
                    [self.view makeToast:NSLocalizedString(@"wifi_add_fail", @"添加失败") duration:2.0 position:@"center"];
                }else{
                    [self handleTheError:responseData];
                }
        }];
    }
    else
    {
@@ -152,7 +219,7 @@
                    deviceType:[GlobalKit shareKit].deviceModel
                    completion:^(EZProbeDeviceInfo *deviceInfo, NSError *error) {
                        NSLog(@"deviceInfo = %@, error = %@", deviceInfo, error);
                        self.resultBackgroudImageView.hidden = NO;
//                        self.resultBackgroudImageView.hidden = NO;
                        self.resultImageView.image = [UIImage imageNamed:@"device_default"];
                        self.resultLabel.text = [GlobalKit shareKit].deviceSerialNo;
@@ -161,7 +228,7 @@
                            if (error.code == EZ_HTTPS_DEVICE_ADDED_MYSELF || error.code == EZ_HTTPS_DEVICE_ONLINE_ADDED)
                            {
                                self.statusLabel.textColor = [UIColor blackColor];
                                self.statusLabel.text = NSLocalizedString(@"ad_already_added",@"您已添加过此设备");
                                self.statusLabel.text = NSLocalizedString(@"ad_already_added",@"此设备已被添加");
                                self.statusLabel.hidden = NO;
                            }
                            else if (error.code == EZ_HTTPS_DEVICE_ONLINE_IS_ADDED || error.code == EZ_HTTPS_DEVICE_OFFLINE_IS_ADDED)
@@ -174,6 +241,10 @@
                                     error.code == EZ_HTTPS_DEVICE_NOT_EXISTS ||
                                     error.code == EZ_HTTPS_DEVICE_OFFLINE_IS_ADDED_MYSELF)
                            {
                                if ([[EZSDK sharedInstance].connectTipModels containsObject:deviceInfo.model]||[self checkIfShouldTipWithDeviceModel:deviceInfo.model]) {//为需要提示配网的类型
                                    [self showConnectWifiTipView];
                                    return;
                                }
                                self.statusLabel.hidden = NO;
                                self.actionButton.hidden = NO;
                                if (deviceInfo)
@@ -189,6 +260,9 @@
                                    self.supportSmartMode = YES;
                                    self.supportSoundMode = YES;
                                }
                                self.statusLabel.text =HDLEZLocallizedString(@"wifi_config_not_connected");
                                [self.actionButton setTitle:NSLocalizedString(@"ad_connect_net", @"连接网络") forState:UIControlStateNormal];
                            }
                            else
@@ -212,30 +286,180 @@
}
- (void)handleTheError:(NSError *)error
/*检测model是否包含需要提示的类型
 */
-(BOOL)checkIfShouldTipWithDeviceModel:(NSString*)deviceModel{
    for (NSString *model in [EZSDK sharedInstance].connectTipModels) {
        if ([deviceModel containsString:[NSString stringWithFormat:@"-%@-",model]]) {
            return YES;
            break;
        }
    }
    return NO;
}
/*提示view
 */
-(UIView*)tipView{
    if (!_tipView) {
        //提示view
        _tipView=[[UIView alloc] init];
        [self.view addSubview:_tipView];
        [_tipView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(self.view).offset(HDLEZ_APP_TOP_BAR_HEIGHT);
            make.left.bottom.right.equalTo(self.view);
        }];
        _tipView.backgroundColor=HDLEZ_COLOR_VIEW_BACKGROUND;
        //步骤1指示图
        _step1TipImgV=[[UIImageView alloc] init];
        [_tipView addSubview:_step1TipImgV];
        [_step1TipImgV mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(_tipView).offset(33);
            make.left.equalTo(_tipView).offset(HDLEZGetRealWidth(33));
            make.width.mas_equalTo(130);
            make.height.mas_equalTo(120);
        }];
        _step1TipImgV.image=[UIImage imageNamed:@"hdl_ez_wifi_connect_step1"];
        //步骤1图
        _step1ImgV=[[UIImageView alloc] init];
        [_tipView addSubview:_step1ImgV];
        [_step1ImgV mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(_step1TipImgV.mas_bottom).offset(13);
            make.left.equalTo(_step1TipImgV).offset(7);
            make.width.mas_equalTo(19);
            make.height.mas_equalTo(22);
        }];
        _step1ImgV.image=[UIImage imageNamed:@"hdl_ez_wifi_connect_step_one"];
        //步骤1描述lable
        _step1DescribeL=[[UILabel alloc] init];
        [_tipView addSubview:_step1DescribeL];
        [_step1DescribeL mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(_step1ImgV.mas_bottom).offset(7);
            make.left.equalTo(_step1ImgV);
            make.right.equalTo(_step1TipImgV);
            make.height.mas_equalTo(22);
        }];
        _step1DescribeL.font=HDLEZ_Get_FontBoldWithSize(HDLEZ_FontSize_16);
        _step1DescribeL.textColor=HDLEZ_COLOR_TEXT_TITLE_GRAY;
        _step1DescribeL.numberOfLines=2;
        _step1DescribeL.adjustsFontSizeToFitWidth=YES;
        _step1DescribeL.text=HDLEZLocallizedString(@"wifi_config_select_set_param");
        //步骤2指示图
        _step2TipImgV=[[UIImageView alloc] init];
        [_tipView addSubview:_step2TipImgV];
        [_step2TipImgV mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(_tipView).offset(33);
            make.right.equalTo(_tipView).offset(HDLEZGetRealWidth(-33));
            make.width.mas_equalTo(130);
            make.height.mas_equalTo(120);
        }];
        _step2TipImgV.image=[UIImage imageNamed:@"hdl_ez_wifi_connect_step2"];
        //步骤2图
        _step2ImgV=[[UIImageView alloc] init];
        [_tipView addSubview:_step2ImgV];
        [_step2ImgV mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(_step2TipImgV.mas_bottom).offset(13);
            make.left.equalTo(_step2TipImgV).offset(7);
            make.width.mas_equalTo(19);
            make.height.mas_equalTo(22);
        }];
        _step2ImgV.image=[UIImage imageNamed:@"hdl_ez_wifi_connect_step_two"];
        //步骤2描述lable
        _step2DescribeL=[[UILabel alloc] init];
        [_tipView addSubview:_step2DescribeL];
        [_step2DescribeL mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(_step2ImgV.mas_bottom).offset(7);
            make.left.equalTo(_step2ImgV);
            make.right.equalTo(_step2TipImgV);
            make.height.mas_equalTo(22);
        }];
        _step2DescribeL.font=HDLEZ_Get_FontBoldWithSize(HDLEZ_FontSize_16);
        _step2DescribeL.textColor=HDLEZ_COLOR_TEXT_TITLE_GRAY;
        _step2DescribeL.numberOfLines=2;
        _step2DescribeL.adjustsFontSizeToFitWidth=YES;
        _step2DescribeL.text=HDLEZLocallizedString(@"wifi_config_select_wifi");
        //已连接按钮背景view
        _btnBackView=[[UIView alloc] init];
        [_tipView addSubview:_btnBackView];
        [_btnBackView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.left.bottom.right.equalTo(_tipView);
            make.height.mas_equalTo(76);
        }];
        _btnBackView.backgroundColor=HDLEZ_COLOR_VIEW_FOREGROUND;
        _btnBackView.layer.cornerRadius = 16;
        _btnBackView.layer.maskedCorners = kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner;
        //已连接按钮
        _connectedBtn=[[UIButton alloc] init];
        [_btnBackView addSubview:_connectedBtn];
        [_connectedBtn mas_makeConstraints:^(MASConstraintMaker *make) {
            make.left.equalTo(_tipView).offset(78);
            make.right.equalTo(_tipView).offset(-78);
            make.top.equalTo(_btnBackView).offset(12);
            make.height.mas_equalTo(44);
        }];
        _connectedBtn.layer.cornerRadius = 22;
        [_connectedBtn setBackgroundColor:HDLEZ_COLOR_BACKGROUND_BUTTON];
        [_connectedBtn setTitle:HDLEZLocallizedString(@"wifi_config_connected") forState:UIControlStateNormal];
        _connectedBtn.titleLabel.font=HDLEZ_Get_FontBoldWithSize(HDLEZ_FontSize_16);
        [_connectedBtn setTitleColor:HDLEZ_COLOR_TEXT_WHITE forState:UIControlStateNormal];
        [_connectedBtn addTarget:self action:@selector(Connected) forControlEvents:UIControlEventTouchUpInside];
    }
    return _tipView;
}
/*展示引导view(萤石部分设备不能通过该流程进行配网)
 */
-(void)showConnectWifiTipView{
    self.title = HDLEZLocallizedString(@"wifi_config_net_work");
    [self.tipView setHidden:NO];
}
/*已连接
 */
-(void)Connected{
    self.title = HDLEZLocallizedString(@"ad_result_title");
    //隐藏指示view
    [self.tipView setHidden:YES];
    [self doSearchDevice];
}
- (void)handleTheError:(ResponseData *)responseData
{
    if (!error)
    if (responseData.success)
    {
        [self performSegueWithIdentifier:@"go2WifiResult" sender:nil];
        return;
    }
    if (error.code == 105002)
    if ([responseData.code isEqual: @"20010"])
    {
        UIAlertView *retryAlertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"device_verify_code_wrong", @"验证码错误") message:nil delegate:self cancelButtonTitle:NSLocalizedString(@"cancel", @"取消") otherButtonTitles:NSLocalizedString(@"retry", @"重试"), nil];
        retryAlertView.tag = 0xbb;
        [retryAlertView show];
    }
    else if (error.code == 105000)
    else if ([responseData.code isEqual: @"20017"])
    {
        [UIView dd_showMessage:NSLocalizedString(@"ad_already_added",@"您已添加过此设备")];
    }
    else if (error.code == 105001)
    else if ([responseData.code isEqual: @"20013"])
    {
        [UIView dd_showMessage:NSLocalizedString(@"ad_added_by_others",@"此设备已被别人添加")];
    }
    else
    {
        [UIView dd_showMessage:NSLocalizedString(@"wifi_add_fail",@"添加失败")];
//        [UIView dd_showMessage:NSLocalizedString(@"wifi_add_fail",@"添加失败")];
        [UIView dd_showMessage:responseData.message];
    }
}