IOS代码笔记之网络嗅探功能

本文实例为大家分享了IOS网络嗅探工具,供大家参考,具体内容如下

一、效果图 

 

二、工程图

 

三、代码
AppDelegate.h

#import <UIKit/UIKit.h>
#import "Reachability.h"

@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
   Reachability *reachability;
   BOOL WarningViaWWAN;
}

@property (strong, nonatomic) UIWindow *window;

- (void)ReachabilitySniff:(Reachability*) curReach;
- (void)ReachabilitySniffNotification:(NSNotification* )notification;
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;

@end

AppDelegate.m

#import "AppDelegate.h"
#import "RootViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  // Override point for customization after application launch.

  RootViewController *rootVC=[[RootViewController alloc]init];
  UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:rootVC];
  self.window.rootViewController=nav;

  //启动网络嗅探功能
  WarningViaWWAN = TRUE;

  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ReachabilitySniffNotification:) name:kReachabilityChangedNotification object:nil];

  if (!reachability) {
    reachability = [Reachability reachabilityForInternetConnection];
  }
  [reachability startNotifier];

  [self performSelector:@selector(ReachabilitySniff:) withObject:reachability afterDelay:20];

  self.window.backgroundColor = [UIColor whiteColor];
  [self.window makeKeyAndVisible];
  return YES;
}
#pragma mark -网络嗅探
- (void)ReachabilitySniffNotification:(NSNotification* )notification
{
  Reachability* curReach = [notification object];
  [self performSelector:@selector(ReachabilitySniff:) withObject:curReach afterDelay:2];
}

- (void)ReachabilitySniff:(Reachability*) curReach
{
  NSLog(@"ReachabilitySniffNewWorkStatus");
  if (!curReach) {
    return;
  }
  NetworkStatus status = [curReach currentReachabilityStatus];
  switch (status) {
    case ReachableViaWiFi:
    {
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"您正在使用WiFi网络" message:Nil delegate:self cancelButtonTitle:Nil otherButtonTitles:@"本次不再提醒",@"知道了", nil];
      [alert show];
      break;
    }
    case ReachableViaWWAN:
    {
       UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"您正在使用移动网络,运营商会收取流量费,建议使用WiFi网络" message:Nil delegate:self cancelButtonTitle:Nil otherButtonTitles:@"本次不再提醒",@"知道了", nil];
        [alert show];
       break;
    }
    case NotReachable:
    {
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"没有网络" message:Nil delegate:self cancelButtonTitle:Nil otherButtonTitles:@"本次不再提醒",@"知道了", nil];
      [alert show];
      break;
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • iOS开发网络编程之断点续传

    前言 网络下载是我们在项目中经常要用到的功能,如果是小文件的下载,比如图片和文字之类的,我们可以直接请求源地址,然后一次下载完毕.但是如果是下载较大的音频和视频文件,不可能一次下载完毕,用户可能下载一段时间,关闭程序,回家接着下载.这个时候,就需要实现断点续传的功能.让用户可以随时暂停下载,下次开始下载,还能接着上次的下载的进度. 今天我们来看看如何自己简单的封装一个断点续传的类,实现如下功能. 1.使用者只需要调用一个接口即可以下载,同时可以获取下载的进度. 2.下载成功,可以获取文件存储的位

  • iOS开发使用JSON解析网络数据

    前言:对服务器请求之后,返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) 本篇随便先讲解JSON解析. 正文: 关于JSON: JSON是一种轻量级的数据格式,一般用于数据交互JSON的格式很像Objective-C中的字典和数组:{"name":"jack","age":10} 补充: 标准的JSON格式的注意点:key必须用双引号.(但是在Java中是单引号) JSON-OC的转换对照表 其中:null--返回OC里的N

  • 使用Reachability类判断iOS设备的当前网络连接类型

    (1). 下载 https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip (2). 拖reachability.h,reachability.m入工程 (库非ARC) ARC:-fno-objc-arc (3) .导入SystemConfiguration.framework (4).用法 复制代码 代码如下: -(NSString*)getNetType   {          NSStr

  • iOS实时监控网络状态的改变

    在网络应用中,有的时候需要对用户设备的网络状态进行实时监控,有两个目的:  (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能)  (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验  WIFI网络:自动下载高清图片  4G/3G网络:只下载缩略图  没有网络:只显示离线的缓存数据  常用的有以下两种方法:  (1).使用苹果观法提供的检测iOS设备网络环境用的库 Reachablity  (2).使用AFN框架中的AFNetworkReachabilityManager

  • iOS开发使用GDataXML框架解析网络数据

    前言:GDataXML是google基于C语言写的第三方框架,该源码文件就一个类,看其源码,基本使用了C语言的底层的很多lib编译库代码,所以刚导入使用,会报错提示需要设置导入需要的链接库. 另外,该第三方框架并没有纳入Cocoapods,所以通过pod搜索不到这个框架. 1.使用GDataXML框架,将GDataXML框架导入到工程中.下载链接:http://xiazai.jb51.net/201602/yuanma/GDataXML(jb51.net).zip.然后先编译一下,会有错误提示,

  • iOS获取网络类型的方法汇总

    Reachability类只能区分WIFI和WWAN类型,却无法区分2G网和3G网. 网上也有些方法,却都存在Bug. 经过网上查找资料和测试,基本上总结了以下几种方法: 1.使用导航栏的方式:(私有API) 代码: 复制代码 代码如下: typedef enum {     NetWorkType_None = 0,     NetWorkType_WIFI,     NetWorkType_2G,     NetWorkType_3G, } NetWorkType; UIApplicatio

  • iOS开发中使用NSURLConnection类处理网络请求的方法

    NSURLConnection 作为 Core Foundation / CFNetwork 框架的 API 之上的一个抽象,在 2003 年,随着第一版的 Safari 的发布就发布了.NSURLConnection 这个名字,实际上是指代的 Foundation 框架的 URL 加载系统中一系列有关联的组件:NSURLRequest.NSURLResponse.NSURLProtocol. NSURLCache. NSHTTPCookieStorage.NSURLCredentialStor

  • iOS开发使用XML解析网络数据

    前言:本篇随笔介绍的是XML解析. 正文: 1.XML解析方式有2两种: DOM:一次性将整个XML数据加载进内存进行解析,比较适合解析小文件SAX:从根元素开始,按顺序一个元素一个元素往下解析,比较适合解析大文件 2.IOS中XML解析方案有很多种: 2-1.第三方框架: libxml2:纯C语言,默认包含在iOS SDK中,同时支持DOM和SAX解析 GDataXML:DOM方式解析,由Google开发,基于libxml2 2-2.苹果原生 NSXMLParser:SAX方式解析,使用简单

  • IOS代码笔记之网络嗅探功能

    本文实例为大家分享了IOS网络嗅探工具,供大家参考,具体内容如下 一.效果图    二.工程图   三.代码 AppDelegate.h #import <UIKit/UIKit.h> #import "Reachability.h" @interface AppDelegate : UIResponder <UIApplicationDelegate> { Reachability *reachability; BOOL WarningViaWWAN; } @

  • IOS代码笔记之下拉选项cell

    本文介绍了IOS下拉选项cell的使用方法,供大家参考,具体内容如下 一.效果图 二.工程图 三.代码 RootViewController.h #import <UIKit/UIKit.h> //加入头文件 #import "ComboBoxView.h" @interface RootViewController : UIViewController { ComboBoxView *_comboBox; } @end RootViewController.m #impo

  • IOS代码笔记之仿电子书书架效果

    本文实例为大家分享了IOS书架效果的具体实现代码,供大家参考,具体内容如下 一.效果图   二.工程图  三.代码 RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewController <UITableViewDataSource,UITableViewDelegate> { NSMutableArray * dataArray; UITableView * myT

  • IOS代码笔记之下拉菜单效果

    本文实例为大家分享了ios下拉菜单的具体代码,供大家参考,具体内容如下 一.效果图 二.工程图 三.代码 RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewController @end RootViewController.m #import "RootViewController.h" #import "NIDropDown.h" @i

  • IOS代码笔记UIView的placeholder的效果

    本文实例为大家分享了IOS占位符效果,供大家参考,具体内容如下 一.效果图 二.工程图 三.代码 RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewController <UITextViewDelegate> { UITextView *psTextView; UILabel *pslabel; } @end RootViewController.m #import

  • IOS代码笔记之勾选"记住密码"整体button

    本文实例为大家分享了IOS记住密码整体button 的实现代码,供大家参考,具体内容如下 一.效果图 二.工程图 三.代码 RootViewController.h #import <UIKit/UIKit.h> @class BECheckBox; @interface RootViewController : UIViewController { BECheckBox *passwordCheck; } @property(nonatomic,retain)BECheckBox *pass

  • IOS代码笔记之文字走马灯效果

    本文实例为大家分享了IOS文字走马灯效果具体实现代码,供大家参考,具体内容如下 一.效果图 二.工程图  三.代码 RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewController @end RootViewController.m #import "RootViewController.h" #import "UXLabel.h"

  • IOS代码笔记之左右滑动效果

    本文实例为大家分享了ios实现左右滑动操作代码,供大家参考,具体内容如下 一.效果图 二.代码 RootViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.title=@"可以向左(右)滑动"; //向右滑动 UISwipeGestureRecognizer *recognizerLeft; recogniz

  • IOS代码笔记之勾选"记住密码"整体button

    本文实例为大家分享了IOS记住密码整体button 的实现代码,供大家参考,具体内容如下 一.效果图 二.工程图 三.代码 RootViewController.h #import <UIKit/UIKit.h> @class BECheckBox; @interface RootViewController : UIViewController { BECheckBox *passwordCheck; } @property(nonatomic,retain)BECheckBox *pass

  • iOS高仿微信表情输入功能代码分享

    最近项目需求,要实现一个类似微信的的表情输入,于是把微信的表情扒拉出来,实现了一把.可以从这里下载源码.看起来表情输入没有多少东西,不外乎就是用NSTextAttachment来实现图文混排,结果在实现的过程中遇到了很多小问题,接下来会一一介绍遇到过的坑.先上一张效果图: 一.实现表情选择View(WKExpressionView) 具体的实现就不细说了,主要功能就是点击表情时,将对应表情的图片名称通知给delegate. 二.实现表情textView(WKExpressionTextView)

随机推荐