Ограничить приложение iOS только Wi-Fi? - PullRequest
0 голосов
/ 10 июня 2011

Я ищу способ ограничить мое приложение для iOS (или даже его часть) только Wi-Fi. Я просмотрел пример достижимости и так и не нашел решения. Я могу заставить его отображать сообщение, когда пользователь подключен к 3g, но я не знаю, как заставить его перестать загружать представление.

У меня есть вид, который загружает другой вид при нажатии кнопки. Я хочу закрыть это второе представление, если устройство подключено к 3g. Как я могу сделать это?

1 Ответ

3 голосов
/ 10 июня 2011

Я никогда не делал то, что вы пытаетесь сделать раньше, но я думаю, что это просто вопрос определения API Reachability.

Я бы начал с некоторого кода в вашем классе 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.Все зависит от того, чего вы хотите достичь.

...