257 lines
9.4 KiB
Objective-C
257 lines
9.4 KiB
Objective-C
//
|
||
// 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
|