You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
175 lines
4.9 KiB
175 lines
4.9 KiB
![]()
2 years ago
|
//
|
||
|
// WiFiListViewController.m
|
||
|
// tongxin
|
||
|
//
|
||
|
// Created by ecell on 2020/10/30.
|
||
|
// Copyright © 2020 xTT. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#import "WiFiListViewController.h"
|
||
|
#import "WIFIModel.h"
|
||
|
#import "TableCell.h"
|
||
|
#import "SVProgressHUD.h"
|
||
|
|
||
|
@interface WiFiListViewController () <UITableViewDelegate,UITableViewDataSource>
|
||
|
|
||
|
@property (strong, nonatomic) UITableView *myTableView;
|
||
|
|
||
|
@property (strong, nonatomic) WIFIModel *model;
|
||
|
|
||
|
@property (strong, nonatomic) NSMutableArray *wifiArr;
|
||
|
|
||
|
@property (strong, nonatomic) id observe;
|
||
|
|
||
|
@end
|
||
|
|
||
|
@implementation WiFiListViewController
|
||
|
|
||
|
|
||
|
- (void)viewWillAppear:(BOOL)animated{
|
||
|
[super viewWillAppear:animated];
|
||
|
[self loadData];
|
||
|
}
|
||
|
|
||
|
- (void)viewDidLoad {
|
||
|
[super viewDidLoad];
|
||
|
|
||
|
WEAKSELF
|
||
|
|
||
|
_wifiArr = [NSMutableArray new];
|
||
|
|
||
|
[self initUI];
|
||
|
|
||
|
_observe = [[NSNotificationCenter defaultCenter] addObserverForName:AccountMessageNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
|
||
|
|
||
|
NSDictionary *dic = note.object;
|
||
|
|
||
|
NSDictionary *msgDic = dic[@"message"];
|
||
|
NSString * msgType = msgDic[@"type"];
|
||
|
|
||
|
|
||
|
if(!msgType || !msgDic){
|
||
|
return ;
|
||
|
}
|
||
|
|
||
|
|
||
|
if([msgType isEqualToString:@"wifi"]) {
|
||
|
NSArray *wifi = msgDic[@"wifi"];
|
||
|
NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(NSDictionary *evaluatedObject, NSDictionary<NSString *,id> * _Nullable bindings) {
|
||
|
NSString *name = evaluatedObject[@"ssid"];
|
||
|
if ([name isEqualToString:@""]) {
|
||
|
return NO;
|
||
|
} else {
|
||
|
return YES;
|
||
|
}
|
||
|
}];
|
||
|
NSArray *filterArray = [wifi filteredArrayUsingPredicate:predicate];
|
||
|
[weakSelf.wifiArr removeAllObjects];
|
||
|
[weakSelf.wifiArr addObjectsFromArray:filterArray];
|
||
|
[weakSelf.myTableView reloadData];
|
||
|
[weakSelf dismissHUD];
|
||
|
}
|
||
|
|
||
|
xLog(@"%@", dic);
|
||
|
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
- (void)loadData{
|
||
|
WEAKSELF
|
||
|
[WIFIModel getWIFIDataListSuccess:^(WIFIModel * _Nonnull model) {
|
||
|
weakSelf.model = model;
|
||
|
[weakSelf.myTableView reloadData];
|
||
|
[weakSelf showHUD];
|
||
|
} failure:^(NSError * _Nonnull error) {
|
||
|
[weakSelf showHUD];
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
- (void)showHUD {
|
||
|
[SVProgressHUD showWithStatus:@"正在检索附近wifi,请保持手机与设备处于同一网络环境"];
|
||
|
[self performSelector:@selector(dismissHUD) withObject:nil afterDelay:15.0];
|
||
|
}
|
||
|
|
||
|
- (void)dismissHUD {
|
||
|
[SVProgressHUD dismiss];
|
||
|
}
|
||
|
|
||
|
- (void)initUI{
|
||
|
self.title = @"WIFI列表";
|
||
|
|
||
|
_myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, ScreenHeight-getRectNavAndStatusHight) style:UITableViewStylePlain];
|
||
|
_myTableView.backgroundColor = tabViewBG;
|
||
|
_myTableView.delegate = self;
|
||
|
_myTableView.dataSource = self;
|
||
|
[self.view addSubview:_myTableView];
|
||
|
|
||
|
_myTableView.bounces = NO; //禁止弹跳
|
||
|
_myTableView.showsHorizontalScrollIndicator = NO;
|
||
|
_myTableView.showsVerticalScrollIndicator = NO;
|
||
|
|
||
|
//去线
|
||
|
UIView *view = [UIView new];
|
||
|
view.backgroundColor = [UIColor clearColor];
|
||
|
[_myTableView setTableFooterView:view];
|
||
|
}
|
||
|
|
||
|
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
|
||
|
return self.wifiArr.count;
|
||
|
}
|
||
|
|
||
|
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
|
||
|
if (section == 0) {
|
||
|
return 0.01;
|
||
|
}
|
||
|
return 15 * FIX_SCREEN;
|
||
|
}
|
||
|
|
||
|
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
|
||
|
return 49;
|
||
|
}
|
||
|
|
||
|
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
|
||
|
NSDictionary *wifi = self.wifiArr[indexPath.row];
|
||
|
|
||
|
TextFieldCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TextFieldCell"];
|
||
|
if (!cell) {
|
||
|
cell = [[TextFieldCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"TextFieldCell"];
|
||
|
cell.accessoryType = UITableViewCellAccessoryNone;
|
||
|
cell.textLabel.text = wifi[@"ssid"];
|
||
|
}
|
||
|
|
||
|
return cell;
|
||
|
}
|
||
|
|
||
|
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||
|
|
||
|
NSDictionary *wifi = self.wifiArr[indexPath.row];
|
||
|
|
||
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"select_wifi" object:wifi];
|
||
|
|
||
|
[self.navigationController popViewControllerAnimated:YES];
|
||
|
|
||
|
NSLog(@"wifi = %@", wifi);
|
||
|
}
|
||
|
|
||
|
- (void) viewDidDisappear:(BOOL)animated {
|
||
|
|
||
|
[super viewDidDisappear:animated];
|
||
|
|
||
|
if (_observe) {
|
||
|
[[NSNotificationCenter defaultCenter] removeObserver:_observe];
|
||
|
}
|
||
|
|
||
|
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(dismissHUD) object:nil];
|
||
|
|
||
|
xLog(@"===removeObserver====")
|
||
|
}
|
||
|
|
||
|
|
||
|
@end
|