8

我尝试使用 CaptiveNetwork 来替换用于网络用户身份验证的网页表。该方法是CNSetSupportedSSIDs

我曾尝试在我的应用程序的 AppDelegate 中添加此方法,但是当我想使用具有我已通过上述方法注册的 SSID 的热点时,没有任何反应。网络工作表未出现,但我的应用程序未打开。

这是我的代码:

CFStringRef ssids[2] = { CFSTR("Wifi 1"), CFSTR("Wifi 2") };
CFArrayRef arr_ssids = CFArrayCreate(NULL, (const void **)ssids, 2, &kCFTypeArrayCallBacks);

if( CNSetSupportedSSIDs((CFArrayRef)array))
{
    NSLog(@"Successfully registered supported network SSIDs");
}
else
{
    NSLog(@"Error: Failed to register supported network SSIDs");
}
CFRelease(arr_ssids);

PS:我还在我的应用程序中添加了一个 URL 方案。

感谢您的回答!

4

3 回答 3

3

我已经向苹果提交了一个错误,他们回答说它不会弹出我们的应用程序。

于 2012-06-06T09:07:55.170 回答
1

看来这不是 Apple 的完整实现。您需要拥有有效的“权利”才能使用他们的系统库。请参阅这篇方便的帖子,对其进行更多解释:

http://kalapun.com/blog/2013/02/11/reverse-engineering-ios-app/

于 2014-10-20T13:28:10.503 回答
-2

无论如何,这段代码都包含一个类型-o。CNSetSupportedSsids 应在您的代码片段中配备 arr_ssids。我不知道“数组”是什么类型的变量,但它可能不包含您想要的数据。

于 2012-02-22T22:07:58.823 回答