Iphone 如何在我的应用程序中打开Wi-Fi附加身份验证Safari屏幕?

Iphone 如何在我的应用程序中打开Wi-Fi附加身份验证Safari屏幕?,iphone,ios,network-programming,reachability,Iphone,Ios,Network Programming,Reachability,我正在开发一款iPad应用程序,它需要频繁连接到公共托管的Web服务器。我有一个Wi-Fi网络,需要身份验证,并且在登录30分钟后超时 我正在使用可达性类,但我无法在我的应用程序中获得所需的网络感知。无论用户何时连接/断开Wi-Fi网络,可达性类都会很小心,但如果身份验证超时,可达性类会给出错误的结果 Reachability *internetReach=[Reachability reachabilityWithHostName:@"www.google.com"]; if ([inter

我正在开发一款iPad应用程序,它需要频繁连接到公共托管的Web服务器。我有一个Wi-Fi网络,需要身份验证,并且在登录30分钟后超时

我正在使用可达性类,但我无法在我的应用程序中获得所需的网络感知。无论用户何时连接/断开Wi-Fi网络,可达性类都会很小心,但如果身份验证超时,可达性类会给出错误的结果

Reachability *internetReach=[Reachability reachabilityWithHostName:@"www.google.com"];

if ([internetReach currentReachabilityStatus] == NotReachable) {
    [self alertMessage:@"Wi-Fi connection not available"];
}

当Wi-Fi超时时,我没有收到预期的警报消息。我需要的是,我的应用程序应该识别出Wi-Fi已超时,并且应该自动为用户打开Safari Wi-Fi身份验证表(就像在app Store、YouTube等网站上发生的那样)。

我认为您缺少一些代码。首先,您必须启动通知程序,然后需要将
可达性
引用存储为属性。然后您需要实现通知方法。更改后,您的代码可能如下所示:

-(void)viewWillAppear:(BOOL)animated {
    Reachability *internetReach=[Reachability reachabilityWithHostName:@"www.google.com"];
    [internetReach startNotifier];

    self.internetReachable = internetReach;
}

-(void)checkNetworkStatus:(NSNotification*)notice;
{
    NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];

    if ([internetReachable currentReachabilityStatus] == NotReachable) {
        [self alertMessage:@"Wi-Fi connection not available"];
    }
}

这篇文章没有回答OPs的问题。为什么不呢?他在问为什么他没有得到一个警惕的观点。作为一名开发人员,在接到checkNetworkStatus调用时,您必须自己显示alertview。在他的例子中,他没有得到任何警告。他提供的代码不正确。也许我遗漏了什么,但据我所知,他想打开Wi-Fi认证屏幕,而不是显示alertView。也许我误解了这个问题!?然后他的代码有点误导,因为代码是用于互联网访问的。我解决了部分问题。为了打开Safari身份验证表,我只需在Info.plist文件中包含“Application Uses Wi-Fi”属性并将其设置为YES。检测身份验证超时的另一部分仍然是一个问题。