2015-09-22 4 views
7

Я использую UIWebView в своем приложении, и все это отлично работало в симуляторе Xcode4,5,6. но не для симулятора Xcode 7, я не знаю, почему в симуляторе нет предупреждений или ошибок, и на экране отображается только пустая страница. Пожалуйста, помогите мне. Благодарю.Xcode 7 UIWebView не загружает URL-адрес

#import "IndexViewController.h" 

@interface IndexViewController() 

@end 

@implementation IndexViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSString *urlString = nil; 
    NSString *languageCode = [[NSLocale preferredLanguages] objectAtIndex:0]; 
    if ([languageCode isEqualToString:@"zh-Hans"]) { 
     urlString = @"http://www.originoftime.net/index-cn"; 
    }else if ([languageCode isEqualToString:@"zh-Hant"]) { 
     urlString = @"http://www.originoftime.net/index-cn"; 
    }else{ 
     urlString = @"http://www.originoftime.net/index-en"; 
    } 
    NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]; 

    NSURLRequest *urlrequest = [NSURLRequest requestWithURL:url]; 

    [_Index loadRequest:urlrequest]; 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

ответ

12

Xcode 7 с iOS9 теперь заставляет вас не использовать HTTP-вызов, а HTTPS.

это точка безопасности, улучшенная в AppTransportSecurity.

Попробуйте это:

  • Перейти к вашему info.plist
  • Добавить словарь под названием NSAppTransportSecurity
  • Добавить булево атрибут к этому, называется NSAllowsArbitraryLoads
  • Передайте его ИСТИНА

Перезагрузите приложение.

Я советую вам, что если Apple хочет заблокировать HTTP (необеспеченные) вызовы, это является веской причиной. http://www.originoftime.net/index-cn имеет протокол HTTPS, но серверный сертификат, похоже, сам подписан.

Позвольте мне знать, если этот способ работы для вас

Приветствия из Франции

+0

Для получения более подробной информации, я советую вам прочитать эту статью полностью: [РАБОТАЮЩУЮ С APPLE'S APP ТРАНСПОРТНОЙ БЕЗОПАСНОСТИ] (HTTP: //www.neglectedpotential.com/2015/06/working-with-apples-application-transport-security/) – jlngdt

+0

grt info !! спасибо –

+0

Спасибо, он работает сейчас. :) –

1

ли вы реализовать методы веб мнение делегатов? В частности:

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error 

Если сбой нагрузки, это скажет вам, в чем проблема.

Это может быть ошибка, связанная с новой моделью безопасности, которая применяется для доступа к сети. Вы можете переопределить это новое поведение, добавив следующее в свой файл Info.plist. Просто редактировать XML и вставьте в:

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key><true/> 
</dict> 

Изменения приведены здесь: https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/index.html

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