如何在iOS上解析PAC文件
How to parse a PAC file on iOS
所以我试图在iOS设备上获取代理信息。操作系统方便地使用函数CFNetworkCopySystemProxySettings()来获取设置的字典。当提供主机和端口时,我没有问题,我可以分别使用kCFNetworkProxiesHTTPProxy和kCFNetworkProxy HTTPPort键访问字典中的主机和端口。但是,有时不提供这些,而是为kCFNetworkProxiesProxyAutoConfigURLString键提供URL。这就是我的问题所在。。。
因此,我提取了该文件,其中包含一个预期的javascript函数:
function FindProxyForURL(url,host)
{
if (isInNet(host, "10.xxx.xxx.xxx", "255.255.224.0"))
{
return "DIRECT";
}
if (isInNet(host, "10.xxx.xxx.xxx", "255.255.224.0"))
{
return "DIRECT";
}
return "PROXY host:port";
}
我觉得哪一个都不错。。?
然后,我尝试调用函数并获得返回值,这就是一切出错的地方:(这是我最近的尝试:
NSString *jsFunction = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; // jsFunction is the javascript function above
JSContext *context= [[JSContext alloc] init];
[context evaluateScript:jsFunction];
JSValue *function = context[@"FindProxyForURL"];
JSValue *jsResult = [function callWithArguments:@[[JSValue valueWithObject:[NSString stringWithCppString:host] inContext:context], [JSValue valueWithObject:[NSString stringWithCppString:host] inContext:context]]];
NSString *result = [jsResult toString];
结果总是以未定义的形式返回!!
我已经尝试了一些测试函数来代替只增加数字的PAC,它们按预期工作,当我引入对isInNet的调用时,问题似乎就开始了。有人遇到过类似的问题吗?iOS不支持isInNet吗?我是不是做错了什么?
谢谢你能提供的任何帮助!
问题是没有定义isInNet
(或任何其他可能使用的PAC函数);它们不是标准的Javascript函数。你有没有尝试过像CFNetworkCopyProxiesForAutoConfigurationScript
这样更直接的东西?
相关文章:
- 如何播放部分音频文件
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用WCF服务和javascript表单post上传.doc文件
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在php文件中获取$.post-ajax传递的值
- 直接下载文件,而不是从window.open(url)
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 使用压缩的JavaScript文件(不是运行时压缩)
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- Javascript运行php文件,然后下载文件
- 在Chrome扩展中使用PAC文件重定向HTTPS请求似乎失败了
- 可以'设置本地PAC文件时无法获取完整的url
- 如何在iOS上解析PAC文件