Ограничение на разрыв UIWebView при воспроизведении видео в полноэкранном режиме (Xcode 6)

Я обновляю приложение iOS для канала YouTube. В предыдущей версии (iOS 7 с использованием Xcode 5) я использовал для встраивания iTrame iTrame в UIWebView, и все будет работать нормально.

Тем не менее, в iOS 8 с использованием Xcode 6 каждый раз, когда я воспроизвожу видео Youtube, и он выходит на весь экран, мои ограничения UIWebView ломаются, а UIWebView переносится в мой контроллер (обычно на 10 точек вверх).

Я попытался изменить ограничения, но кажется, что не имеет значения, какое ограничение я настроил, он в конечном итоге сломается, когда плеер войдет в полноэкранный режим.

Здесь html-код, используемый для встраивания YouTube iframe:

- (void)embedYouTube:(NSString *)urlString
{
NSString *embedHTML =[NSString stringWithFormat:@"\
 \
 \
 \
 \
 ",urlString];
[self.webView loadHTMLString:embedHTML baseURL:nil];

}

Поскольку журнал огромен, я вставил его в pastebin: http://pastebin.com/z4zyq7Hs

Спасибо :)

3 ответа

У меня была такая же проблема. Но я не испытываю проблемы с перемещением, хотя (используя Xcode 6.1), только пучок журналов ломающихся ограничений.

То, что я тестировал, все еще не может работать: - удалите ограничение и setTranslatesAutoresizingMaskIntoConstraints в YES для всех веб-просмотров и его подпрограмм - обменивайте UIWebview с WKWebview, более новым и быстрым интерфейсом UIWebview

Я также тестирую видео Dailymotion, и у него тоже такая же проблема, поэтому я подозреваю, что это больше проблема в представлениях MediaPlayer UIWebview.


Я собираюсь оставить работу, поэтому мне придется быстро набрать этот ответ,

один из способов, которым я нашел исправление, это обновление кэша просматриваемой страницы, у меня нет твердого исправления для этого, но на прошлой неделе я нашел временную, это можно сделать, создав ссылку на css файл в заголовке вашего html

важно, чтобы вы также создали файл refresh.css, однако вы вслух оставите его пустым,

теперь используя javascript или jQuery, если вы уже подключили его, используйте

.remove http://api.jquery.com/remove/

на id refreshCache, при загрузке страницы, удаляя ссылку в заголовке в пустой файл при загрузке страницы...

это обновит кеш браузеров, надеюсь, что это поможет!


попробуй вот так

- (void)embedYouTube:(NSString*)url frame:(CGRect)frame { 
 NSString* embedHTML = @"\ 
 \ 
 \ 
 \ 
 \ 
 "; 
 NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height]; 
 if(videoView == nil) { 
 videoView = [[UIWebView alloc] initWithFrame:frame]; 
 [self.view addSubview:videoView]; 
 } 
 [videoView loadHTMLString:html baseURL:nil]; 
 }

licensed under cc by-sa 3.0 with attribution.