Получить настройки прокси системы на устройстве iOS, использующем файл PAC, с помощью Objective-C
В настоящее время я использую следующий фрагмент кода для обнаружения прокси, используемого устройством iOS, на котором выполняется мое приложение:
NSDictionary *proxySettings = NSMakeCollectable([(NSDictionary *)CFNetworkCopySystemProxySettings() autorelease]);
NSArray *proxies = NSMakeCollectable([(NSArray *)CFNetworkCopyProxiesForURL((CFURLRef)[NSURL URLWithString:@"http://www.google.com"], (CFDictionaryRef)proxySettings) autorelease]);
NSDictionary *settings = [proxies objectAtIndex:0];
NSLog(@"host=%@", [settings objectForKey:(NSString *)kCFProxyHostNameKey]);
NSLog(@"port=%@", [settings objectForKey:(NSString *)kCFProxyPortNumberKey]);
NSLog(@"type=%@", [settings objectForKey:(NSString *)kCFProxyTypeKey]);
Однако это не возвращает сведения о прокси, если устройство использует файл PAC для настройки прокси.
Из документации Apple: https://developer.apple.com/documentation/cfnetwork/kcfnetworkproxiesproxyautoconfigjavascript?language=objc, кажется, что kCFNetworkProxiesProxyAutoConfigJavaScript возвращает источник для файла PAC
Кроме того, также можно использовать kCFNetworkProxiesProxyAutoConfigURLString: https://developer.apple.com/documentation/cfnetwork/kcfnetworkproxiesproxyautoconfigurlstring?language=objc
Тем не менее, я не смог найти рабочий образец для вышеупомянутого.
Кроме того, есть ли лучший / правильный способ обнаружения / получения настроек прокси на устройстве iOS, которое использует файл PAC?