• 【代码笔记】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;
            }
        }
    }
    复制代码

     

  • 相关阅读:
    python获取公网ip,本地ip及所在国家城市等相关信息收藏
    Tkinter的下拉列表Combobox
    pyinstaller打包pyqt文件(转)
    通过pyqt5实现俄罗斯方块游戏例子
    pygame游戏开发入门例子
    python界面Tkinter编程(tkMessageBox对话框使用)
    python tkinter-菜单栏
    python tkinter-容器、子窗体
    HUNNU--湖师大--11409--Skill
    [置顶] 博客搬迁到新地址。
  • 原文地址:https://www.cnblogs.com/yang-guang-girl/p/5602484.html
Copyright © 2020-2023  润新知