我试图使用CaptiveNetwork,以便用网络替换用于用户身份验证的web表。方法是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方案到我的应用程序。
谢谢你的回答
我已经向苹果提交了一个bug,他们回答说它不会弹出我们的应用程序。
看来这不是苹果的完整实现。您需要有有效的"授权"才能使用他们的系统库。请看这篇方便的文章来解释更多:
http://kalapun.com/blog/2013/02/11/reverse-engineering-ios-app/无论如何,这段代码包含了一个类型0。在这里的代码片段中,CNSetSupportedSsids应该与arr_ssids匹配。我不知道"数组"是什么类型的变量,但它可能不包含你想要的数据。