2015-10-10 4 views
-1

Я тестировал следующее на устройствах iOS 8 и iOS 9. он отлично работает с iOS 8, но он не работает в iOS 9. Кто-нибудь может помочь?не удалось проверить подключение к Интернету в 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"); 

} 
+2

Можете ли вы уточнить, как он не работает? Возможно ли, что приложение Transport Security предотвращает это? –

+0

он не возвращает никаких действий, которые он показывает, он проверил подключение к Интернету @rikkigibson – katie

+0

Похоже, что он блокирует вызов dataWithContentsOfURL. Убедитесь, что система не регистрирует какие-либо предупреждения в консоли об этом методе и проверяет документы, чтобы узнать, устарели ли они. –

ответ

0

IOS 9 осуществила ATS (App Transport Security) и вам нужно будет добавить в белый список URL-адресов, которые не поддерживают TLS 1.2 и вперед или разрешить NSAllowsArbitraryLoads.

См. Это SO answer для получения дополнительной информации.

Смежные вопросы