我正在研究以找到为 iOS 使用强制网络的最佳方式。看起来这是做什么的,如果我错了请纠正我,是允许用户输入不同的 ssid 和密码,当该网络可用时可用于自动登录。如果是这样,那么完成以下操作的最佳方法是什么,从用户那里读取 ssid 和密码并将他连接到该 wifi 网络,或者甚至可能。
到目前为止,我所做的就是用这个拉出当前连接的网络:
NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
id info = nil;
for (NSString *ifnam in ifs) {
NSLog(@"ifnam = %@", ifnam);
info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge_retained CFStringRef)ifnam);
if (info && [info count]) {
break;
}
}
NSLog (@"SSID: %@", [ info objectForKey"@"SSID" ]);
最佳答案
“强制网络”就像您在酒店或星巴克中看到的那样,WiFi 连接已打开,但您需要通过登录或“我接受条件”页面才能连接到任何网站。
通常,当您连接到这样的网络时,IOS 设置应用程序会弹出一个网页表单来完成登录。 CN API 的目的是让您的应用程序进行身份验证,而不是放置 Web 表单。
您的问题询问有关从用户那里读取 SSID 的问题:这似乎不太有用,因为“设置”应用程序已经允许用户指定任意 SSID,然后使用密码登录。 Captive Network API 仅在您的应用确切知道如何登录网络时才有用,在这种情况下它也可以知道 SSID。您可以使用通常的 NSTextField 从用户那里获取密码。
另请注意,IOS 不会在网络连接时启动您的应用:此 API 仅在您的应用已在运行时才有效。
关于iphone - 专属网络使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10195957/