0

我的应用程序需要一个自动重新连接功能,但它不起作用,因为当连接再次可用时 iPhone 本身不会重新连接。您应该关闭/打开 iPhone 或切换应用程序以触发它进行连接。如果连接丢失,它甚至在 Safari 中也不起作用。如何在不切换应用程序或关闭/打开 iPhone 的情况下从我的应用程序执行此操作?

4

1 回答 1

0

使用可达性 API。http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

你可以在这里找到相同的 ARC 版本

每当网络状态发生变化时,可达性 api 都会在默认中心发布通知。因此,将自己添加为此通知的观察者,并在网络恢复时做任何你想做的事情..!

来自上面给出的同一 github 页面的一个简单示例,

    // allocate a reachability object
    Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"];

    // tell the reachability that we DONT want to be reachable on 3G/EDGE/CDMA
    reach.reachableOnWWAN = NO;

    // here we set up a NSNotification observer. The Reachability that caused the notification
    // is passed in the object parameter
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(reachabilityChanged:) 
                                                 name:kReachabilityChangedNotification 
                                               object:nil];

[reach startNotifier]
于 2012-09-08T16:00:08.383 回答