Ответ 1
Вы должны проверить путь URL-адреса Это должно быть @ "http://google.com" вместо @ "google.com"
В приложении, к которому я подключен, я собираю список видеороликов YouTube и позволяю их отображать в приложении. Однако, когда пользователь удаляет ячейку в навигаторе навигации YouTube и появляется модальный вид с помощью UIWebView, UIWebView возвращает ошибку "Прерванная загрузка кадра".
Я запускаю его через отладчик десятки раз, и все, кажется, идет хорошо, пока я не инициализирую NSURLRequest. Когда отображается модальное представление, вот код, который выполняется в методе ViewController -viewDidLoad
:
- (void)viewDidLoad
{
[super viewDidLoad];
_webView = [[UIWebView alloc] init];
_webView.delegate = self;
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:_url];
[_webView loadRequest:request];
}
Однако, когда я вытягиваю отладчик в строке [_webView loadRequest:request];
, я вижу следующее:
Кто-нибудь знает, почему UIWebView возвращает ошибку?
Вы должны проверить путь URL-адреса Это должно быть @ "http://google.com" вместо @ "google.com"
У меня такая же проблема, в моем случае оказывается, что MIMEType
не устанавливается должным образом.
Я проверил вручную, создав NSURLConnection
с запросом из URL-адреса, а затем реализовал:
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
чтобы наблюдать обратный вызов ответа от соединения. Ответ MIMEType
оказался "pdf/pdf"
вместо "application/pdf,"
, и, как только я исправлю эту проблему, веб-просмотр загрузил URL-адрес просто отлично.
Надеюсь, что это поможет.
Используемый вами URL-адрес, вероятно, не распознает пользовательский агент. Это была проблема, которая возникла и в более старых версиях iOS, но, похоже, вернулась в iOS 7. Попробуйте добавить это в свой appdelegate didFinishLaunchingWithOptions:
NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
Используйте https://www.google.com Или http://www.google.com
на самом деле https:// - это ключевое слово.
Причина, по которой отображается ошибка с загрузкой кадра, заключается в том, что www.youtube.com
выполняет перенаправление на m.youtube.com
, что не нравится UIWebView. Чтобы дико спекулировать, я бы привел возможные последствия для безопасности? Я смог решить эту проблему, связавшись непосредственно с мобильным сайтом, удалив необходимость перенаправления youtube.
Вы делали это на симуляторе или на самом устройстве? У меня была такая же проблема на сим, но она работала на устройстве:)
Я столкнулся с такой же проблемой в iOS 10.2.1 UIWebView.
при запросе pdf файла с URL-адресом пути
PDF файл имеет MIMEType "application/x-pdf".
поэтому я перешел на "application/pdf" и могу прочитать это
У меня была аналогичная проблема с теми, кто сообщил, что добавление или исправление типа mime устранили проблему. В моем случае я пытался открыть локальный файл без расширения файла (например, "my-dir/my-file" ), и это привело к ужасной ошибке "Frame Load Interrupted"
(вместе с "Unbalanced calls to begin/end appearance transitions for UIViewController"
). Добавление расширения файла (например, "my-dir/my-file.pdf" ) исправило проблему для меня.
Вполне понятно, что вы не устанавливаете "рамку" WebView. Используйте это:
_webView = [[UIWebView alloc] initWithFrame:self.view.frame]; //give a proper Rect value
_webView.delegate = self;
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:_url];
[_webView loadRequest:request];