zoukankan      html  css  js  c++  java
  • 判断网络环境(3G/WIFI)

      通过Reachability来判断设备的网络环境,方法比较简单。直接将Reachability.h和Reachability.m加入到工程中,然后添加SystemConfiguration.framework框架,就可以使用了。工程截图:

    ViewController.h

    //
    // ViewController.h
    // NetworkStatusDemo
    //
    // Created by Fox on 12-3-15.
    // Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
    //

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

    @interface ViewController : UIViewController{
    IBOutlet UILabel *netstatus;

    Reachability* status; //网络状态

    }
    @property (retain, nonatomic) IBOutlet UILabel *netstatus;
    @property (retain, nonatomic) Reachability* status;

    + (BOOL) IsEnableWIFI;
    + (BOOL) IsEnable3G;

    @end

    ViewController.m

    //
    // ViewController.m
    // NetworkStatusDemo
    //
    // Created by Fox on 12-3-15.
    // Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
    //

    #import "ViewController.h"
    #import "Reachability.h"

    @implementation ViewController
    @synthesize netstatus;
    @synthesize status;



    - (void)viewDidLoad
    {
    [super viewDidLoad];

    self.status = [[Reachability alloc] init];
    status = [Reachability reachabilityWithHostName:@"www.cnblogs.com/foxmin"];
    switch ([status currentReachabilityStatus]) {
    case NotReachable:
    // 没有网络连接
    self.netstatus.text = @"没有网络连接";
    break;
    case ReachableViaWWAN:
    // 使用3G网络
    self.netstatus.text = @"使用3G网络";
    break;
    case ReachableViaWiFi:
    // 使用WiFi网络
    self.netstatus.text = @"使用WiFi网络";
    break;
    }

    //程序启动时,检查程序的网络环境
    if ([ViewController IsEnableWIFI] && ![ViewController IsEnable3G]) {
    self.netstatus.text = @"使用WiFi网络";
    }else if(![ViewController IsEnableWIFI] && [ViewController IsEnable3G]){
    self.netstatus.text = @"使用3G网络";
    }else self.netstatus.text = @"没有网络连接";

    }

    - (void)viewDidUnload
    {
    [self setNetstatus:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
    }

    - (void)dealloc {
    [netstatus release];
    [super dealloc];
    }


    /*
    *判断是否通过wifi
    */
    + (BOOL) IsEnableWIFI {
    return ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable);
    }

    /*
    *判断是否通过3G
    */
    + (BOOL) IsEnable3G {
    return ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable);
    }


    @end
  • 相关阅读:
    svg手写标签
    使用node搭建本地服务器
    window电脑上设置鼠标触屏板的开关
    本地git如何与gitlab连接
    utools中的内网穿透下架,可使用natapp替代。
    移动端rem.js
    扫码登录开发者工具时,提示:调试过程中开发者可通过以下公众号获得你的相关信息。怎么取消这个公众号啊?
    实现图片的延迟加载
    Chrome 中安装 Vue 扩展程序
    VMWare虚拟机Bridged类型网卡ping不通的原因和解决办法
  • 原文地址:https://www.cnblogs.com/foxmin/p/2398285.html
Copyright © 2011-2022 走看看