仅将iOS应用限制为wifi?

时间:2011-06-10 04:18:20

标签: ios sdk wifi

我正在寻找一种方法来限制我的iOS应用程序(甚至其中的一部分)仅限于wifi。我已经查看了可达性示例,并没有真正提出解决方案。当用户连接到3g时,我可以让它显示一条消息,但我不知道如何让它停止加载视图。

我有一个视图,当按下按钮时会加载另一个视图。如果设备连接到3g,我希望关闭第二个视图。我怎么能这样做呢?

1 个答案:

答案 0 :(得分:3)

我以前从未做过你想做的事情,但我想这只是找出Reachability API的问题。

我开始在你的AppDelegate类中使用一些代码:

// ivars
Reachability *wifiReach;
Reachability *hostReach;

- (void) reachabilityChanged: (NSNotification *)note {

    Reachability *curReach = (Reachability *)[note object];

    if ([curReach currentReachabilityStatus] == NotReachable) {
        // do something
    } 

}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

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

    hostReach = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain];
    [hostReach startNotifier];

    wifiReach = [[Reachability reachabilityForLocalWiFi] retain];
    [wifiReach startNotifier];

    // controller setup
    viewController = [[CFSplashViewController alloc] init];

    [window addSubview:viewController.view];
    [window makeKeyAndVisible];

    return YES;
}

这是一段非常简单的代码。你可以在这里做的是听取可达性状态的变化,然后设置你的应用程序以做出适当的反应。您不一定要在AppDelegate类中执行此操作。这一切都取决于你想要完成的事情。