ifish/Ifish/controllers/ConnectAauariumVC/ConAquarNowWiFiPwdVC.m

257 lines
9.4 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// ConAquarNowWiFiPwdVC.m
// Ifish
//
// Created by wbzhan on 2019/9/20.
// Copyright © 2019 lianlian. All rights reserved.
//
#import "ConAquarNowWiFiPwdVC.h"
#import <SystemConfiguration/CaptiveNetwork.h>
#import "ConAquarChooseWiFiVC.h"
#import "IQKeyboardManager.h"
@interface ConAquarNowWiFiPwdVC ()<UITextFieldDelegate>
Strong UILabel *titleL;
Strong UILabel *subTitleL;
Strong UITextField *wifiNameTextField;
Strong UITextField *wifiPwdTextField;
Strong UIButton *nextBtn;
@end
@implementation ConAquarNowWiFiPwdVC
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.wifiPwdTextField becomeFirstResponder];
[IQKeyboardManager sharedManager].enable = NO;
}
- (void)viewWillDisappear:(BOOL)animated{
[IQKeyboardManager sharedManager].enable = YES;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self addTitleViewWithTitle:@"连接网络"];
[self.view addSubview:self.titleL];
[self.view addSubview:self.subTitleL];
[self.view addSubview:self.wifiNameTextField];
[self.view addSubview:self.wifiPwdTextField];
[self.view addSubview:self.nextBtn];
[self loadLayout];
[self getSSid];//获取Wifi信息
// Do any additional setup after loading the view.
}
- (UILabel *)titleL
{
if (!_titleL) {
_titleL = InitObject(UILabel);
_titleL.text = @"设备需要连接的WiFi";
_titleL.textAlignment = NSTextAlignmentCenter;
_titleL.font = FontSize(16);
_titleL.textColor = RGB_92;
}
return _titleL;
}
- (UILabel *)subTitleL
{
if (!_subTitleL) {
_subTitleL = InitObject(UILabel);
_subTitleL.text = @"设备暂不支持5G路由WiFi";
_subTitleL.textAlignment = NSTextAlignmentCenter;
_subTitleL.font = FontSize(12);
_subTitleL.textColor = RGB_92;
}
return _subTitleL;
}
- (UIButton *)nextBtn{
if (!_nextBtn) {
_nextBtn = InitObject(UIButton);
[_nextBtn setTitle:@"下一步" forState:UIControlStateNormal];
[_nextBtn setBackgroundColor:RGB(88, 151, 231)];
[_nextBtn setTitleColor:XWhite forState:UIControlStateNormal];
[_nextBtn.titleLabel setFont:FontSize(14)];
_nextBtn.layer.cornerRadius = kSizeFrom750(10);
_nextBtn.layer.masksToBounds = YES;
[_nextBtn addTarget:self action:@selector(nextBtnClick:) forControlEvents:UIControlEventTouchUpInside];
}
return _nextBtn;
}
-(UITextField*)wifiNameTextField{
if (!_wifiNameTextField) {
_wifiNameTextField = InitObject(UITextField);
_wifiNameTextField.placeholder = @"请输入WiFi名称";
_wifiNameTextField.font = FontSize(14);
_wifiNameTextField.delegate = self;
_wifiNameTextField.backgroundColor = XWhite;
_wifiNameTextField.layer.masksToBounds = YES;
_wifiNameTextField.layer.cornerRadius = kSizeFrom750(10);
_wifiNameTextField.leftViewMode = UITextFieldViewModeAlways;
UIView *leftView = InitObject(UIView);
leftView.frame = RECT(0, 0, kSizeFrom750(90), kSizeFrom750(90));
UIImageView *leftImage = [[UIImageView alloc] initWithFrame:RECT(kSizeFrom750(20), kSizeFrom750(20), kSizeFrom750(50), kSizeFrom750(50))];
[leftView addSubview:leftImage];
[leftImage setImage:IMAGEBYENAME(@"icons_con_wifi")];
_wifiNameTextField.leftView = leftView;
}
return _wifiNameTextField;
}
-(UITextField*)wifiPwdTextField{
if (!_wifiPwdTextField) {
_wifiPwdTextField = InitObject(UITextField);
_wifiPwdTextField.placeholder = @"请输入WiFi密码";
_wifiPwdTextField.font = FontSize(14);
_wifiPwdTextField.keyboardType = UIKeyboardTypeAlphabet;
_wifiPwdTextField.delegate = self;
_wifiPwdTextField.backgroundColor = XWhite;
_wifiPwdTextField.layer.masksToBounds = YES;
_wifiPwdTextField.layer.cornerRadius = kSizeFrom750(10);
_wifiPwdTextField.leftViewMode = UITextFieldViewModeAlways;
UIView *leftView = InitObject(UIView);
leftView.frame = RECT(0, 0, kSizeFrom750(90), kSizeFrom750(90));
UIImageView *leftImage = [[UIImageView alloc] initWithFrame:RECT(kSizeFrom750(15), kSizeFrom750(15), kSizeFrom750(60), kSizeFrom750(60))];
[leftView addSubview:leftImage];
[leftImage setImage:IMAGEBYENAME(@"icons_con_lock")];
_wifiPwdTextField.leftView = leftView;
}
return _wifiPwdTextField;
}
-(void)loadLayout{
[self.titleL mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kSizeFrom750(88));
make.centerX.mas_equalTo(self.view);
}];
[self.subTitleL mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.titleL);
make.top.mas_equalTo(self.titleL.mas_bottom).offset(kSizeFrom750(10));
}];
[self.wifiNameTextField mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.subTitleL.mas_bottom).offset(kSizeFrom750(80));
make.centerX.mas_equalTo(self.subTitleL);
make.width.mas_equalTo(kSizeFrom750(690));
make.height.mas_equalTo(kSizeFrom750(90));
}];
[self.wifiPwdTextField mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.width.height.mas_equalTo(self.wifiNameTextField);
make.top.mas_equalTo(self.wifiNameTextField.mas_bottom).offset(kSizeFrom750(50));
}];
[self.nextBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.view);
make.top.mas_equalTo(self.wifiPwdTextField.mas_bottom).offset(kSizeFrom750(100));
make.width.mas_equalTo(200);
make.height.mas_equalTo(30);
}];
[self addContentLabel];;
}
-(void)addContentLabel{
UILabel *preLabel;
NSArray *textArr = @[@"1.选择信号较强的2.4G WiFi将设备和手机尽量靠近路由器正确填写WiFi密码即可快速让设备联网",@"2.设备暂不支持5G WiFi若已连接请切换2.4G WiFi",@"3.路由器不能开启如AP隔离、防蹭网、WLAN助手等限制WiFi接入的选项",@"4.设备暂不支持WAP/WPA2 企业级WiFi若已连接请切换其他WiFi。"];
for (int i=3; i>=0; i--) {
UILabel *label = InitObject(UILabel);
label.text = textArr[i];
label.textColor = RGB_92;
label.font = FontSize(12);
label.numberOfLines = 0;
[self.view addSubview:label];
[label mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(kSizeFrom750(60));
make.right.mas_equalTo(-kSizeFrom750(60));
if (preLabel==nil) {
make.bottom.mas_equalTo(self.view).offset(-kSizeFrom750(30));
} else {
make.bottom.mas_equalTo(preLabel.mas_top).offset(-kSizeFrom750(30));
}
}];
preLabel = label;
}
}
-(void)getSSid{
Reachability *currReach = [Reachability reachabilityForLocalWiFi];
NetworkStatus status = [currReach currentReachabilityStatus];
NSLog(@"%ld", (long)status);
if (status==AFNetworkReachabilityStatusReachableViaWiFi) {
[self connectMyWIFI];
}else{
[self showTitle:@"" messsage:@"请切换到WiFi环境下绑定"];
}
}
-(void)connectMyWIFI{
NSUserDefaults*userDefsult=[NSUserDefaults standardUserDefaults];
NSString*pass=[userDefsult objectForKey:@"wifiPass"];
NSDictionary *netInfo = [self getSSIDInfo];
_ssid = [netInfo objectForKey:@"SSID"];
_bssid = [netInfo objectForKey:@"BSSID"];
self.wifiPwdTextField.text=pass;
self.wifiNameTextField.text = [netInfo objectForKey:@"SSID"];
}
// refer to http://stackoverflow.com/questions/5198716/iphone-get-ssid-without-private-library
//获取WiFi信息
- (NSDictionary *)getSSIDInfo
{
NSArray *interfaceNames = CFBridgingRelease(CNCopySupportedInterfaces());
NSDictionary *SSIDInfo;
for (NSString *interfaceName in interfaceNames) {
SSIDInfo = CFBridgingRelease(
CNCopyCurrentNetworkInfo((__bridge CFStringRef)interfaceName));
BOOL isNotEmpty = (SSIDInfo.count > 0);
if (isNotEmpty) {
break;
}
}
return SSIDInfo;
}
#pragma mark --buttonClick
-(void)nextBtnClick:(UIButton *)sender{
BOOL isRight =[dataContorl isIncludeSpecialCharact:self.wifiPwdTextField.text];
if (!isRight) {
[self.view makeToast:@"路由器密码不能包含特殊字符,只能为数字、字母或下划线"];
return;
}
[self.wifiPwdTextField resignFirstResponder];
[self.wifiNameTextField resignFirstResponder];
ConAquarChooseWiFiVC *chooseVC = InitObject(ConAquarChooseWiFiVC);
chooseVC.wifiName = [NSString stringWithFormat:@"%@",self.wifiNameTextField.text];
chooseVC.wifiPwd = [NSString stringWithFormat:@"%@",self.wifiPwdTextField.text];
chooseVC.ssid = [NSString stringWithFormat:@"%@",self.ssid];
chooseVC.bssid = [NSString stringWithFormat:@"%@",self.bssid];
chooseVC.deviceType=self.deviceType;
[self.navigationController pushViewController:chooseVC animated:YES];
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end