无法在 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 中检查互联网连接的主要内容,如果未能解决你的问题,请参考以下文章

iOS13 立即检查互联网连接

如何在 iOS 和 Android 的 React Native 应用程序中检查互联网连接?

在检查互联网连接期间 iOS 应用程序冻结

IOS / Objective-C:检查互联网连接的最快方法 - 2017 [重复]

如何在 iOS 设备上检查互联网连接? [复制]

在 iOS 应用中检查网络连接的位置