无法在 iOS 9 中检查互联网连接
Posted
技术标签:
【中文标题】无法在 iOS 9 中检查互联网连接【英文标题】:unable to check internet connection in iOS 9 【发布时间】:2015-10-10 23:27:49 【问题描述】:我已经在 ios 8 和 iOS 9 设备上测试了以下内容。它在 iOS 8 中运行良好,但在 iOS 9 中无法运行。有人可以帮忙吗?
问题已解决。解决方法:把这个放到info.plist中
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
原代码
NSURL *scriptUrl = [NSURL URLWithString:@"http://google.com"];
NSData *data = [NSData dataWithContentsOfURL:scriptUrl];
if (data)
NSLog(@"Device is connected to the internet");
else
NSLog(@"Device is not connected to the internet");
【问题讨论】:
您能否更具体地说明它不起作用的方式? App Transport Security 是否有可能阻止它? 它没有返回任何表明它已检查互联网连接的操作@rikkigibson 听起来像是阻塞了 dataWithContentsOfURL 调用。确保系统没有向控制台记录有关该方法的任何警告,并检查文档以查看它是否已被弃用。 我的问题与***.com/questions/32711990/… 类似,但我不明白如何在我拥有@rikkigibson 的代码中应用 NSOperation 哇,18行空行,8行代码! 【参考方案1】:iOS 9 已实现 ATS(应用传输安全),您需要将不支持 TLS 1.2 的 URL 列入白名单并转发安全或允许 NSAllowsArbitraryLoads
。
请参阅此SO answer 了解更多信息。
【讨论】:
以上是关于无法在 iOS 9 中检查互联网连接的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 和 Android 的 React Native 应用程序中检查互联网连接?