我们试用了新的NetworkExtension API。我们成功地重新创建了我们的应用程序中的所有步骤。但是,我们仍然没有在Wifi设置屏幕中看到SSID名称下面的自定义注释。我们在ios 9 Beta 3,xcode 7 beta 3。
我们成功地完成了这些步骤:
这是我们在应用程序中的代码。我们正在尝试用"Internet“的名称来注释SSID,用文本”试试这里“。我们得到了为SSID "Internet“调用setConfidence方法的日志。然而,我们没有在Wifi选择屏幕中看到实际的注释。
我们还试图为options对象传递'nil‘,该对象承诺将App显示为默认注释。但我们也没有看到这一点。对方法registerWithOptions()的调用返回“true”,打开wifi设置屏幕时也会得到回调。
NSMutableDictionary* options = [[NSMutableDictionary alloc] init];
[options setObject:@"Try Here" forKey:kNEHotspotHelperOptionDisplayName];
dispatch_queue_t queue = dispatch_queue_create("com.myapp.ex", 0);
BOOL returnType = [NEHotspotHelper registerWithOptions:options queue:queue
handler: ^(NEHotspotHelperCommand * cmd) {
if(cmd.commandType == kNEHotspotHelperCommandTypeEvaluate || cmd.commandType == kNEHotspotHelperCommandTypeFilterScanList ) {
for (NEHotspotNetwork* network in cmd.networkList) {
if ([network.SSID isEqualToString:@"Internet"]){
[network setConfidence:kNEHotspotHelperConfidenceHigh];
NSLog(@"Confidance set to high for ssid:%@",network.SSID);
}
}
}
}];=========================
请帮助我们了解我们缺少的是什么?
发布于 2016-08-28 07:44:24
我已经实现了下面的代码来验证和注释Wifi热点与“连接到MyWifi”的SSID“TP-链接”从应用程序,它工作得很好。
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:@"Connect to MyWifi", kNEHotspotHelperOptionDisplayName, nil];
dispatch_queue_t queue = dispatch_queue_create("com.myapp.ex", 0);
BOOL isAvailable = [NEHotspotHelper registerWithOptions:options queue:queue handler: ^(NEHotspotHelperCommand * cmd) {
NSMutableArray *hotspotList = [NSMutableArray new];
if(cmd.commandType == kNEHotspotHelperCommandTypeEvaluate || cmd.commandType == kNEHotspotHelperCommandTypeFilterScanList) {
for (NEHotspotNetwork* network in cmd.networkList) {
NSLog(@"network name:%@", network.SSID);
if ([network.SSID isEqualToString:@"TP-LINK"]) {
[network setConfidence:kNEHotspotHelperConfidenceHigh];
[network setPassword:@"<wifi-password>"];
[hotspotList addObject:network];
}
}
NEHotspotHelperResponse *response = [cmd createResponse:kNEHotspotHelperResultSuccess];
[response setNetworkList:hotspotList];
[response deliver];
}
}];注:上述代码若要工作,


希望这能有所帮助。谢谢
发布于 2015-08-05 11:15:42
您首先需要通过电子邮件https://forums.developer.apple.com/thread/11807注册您的应用程序为Hotspot Helper
发布于 2015-09-14 21:26:58
它似乎不完全是那样工作的。NEHotspotHelperCommand对象实际上需要一个NEHotspotHelperResponse。您不能直接修改网络。
代码中所缺少的只是NEHotspotHelperResponse的交付。
NSMutableDictionary* options = [[NSMutableDictionary alloc] init];
[options setObject:@"Try Here" forKey:kNEHotspotHelperOptionDisplayName];
dispatch_queue_t queue = dispatch_queue_create("com.myapp.ex", 0);
BOOL returnType = [NEHotspotHelper registerWithOptions:options queue:queue handler: ^(NEHotspotHelperCommand * cmd) {
if (cmd.commandType == kNEHotspotHelperCommandTypeEvaluate || cmd.commandType == kNEHotspotHelperCommandTypeFilterScanList ) {
for (NEHotspotNetwork* network in cmd.networkList) {
if ([network.SSID isEqualToString:@"Internet"]) {
[network setConfidence:kNEHotspotHelperConfidenceHigh];
// This is required
NEHotspotHelperResponse *response = [cmd createResponse:kNEHotspotHelperResultSuccess];
[response setNetworkList:@[ network ]];
[response deliver];
NSLog(@"Confidance set to high for ssid:%@",network.SSID);
}
}
}
}];希望这能有所帮助。已经过了一个多月了,但我才被批准享受这项权利。
https://stackoverflow.com/questions/31704292
复制相似问题