2014-08-20 1 views
1

для приложения IOS У меня есть Youtube видео, которое загружается при помощи следующего HTML/ObjCКак узнать, когда UIWebView вышел из полноэкранного режима?

NSString *embedHTML = @"\ 
<html><head>\ 
<style type=\"text/css\">\ 
body {\ 
background-color: transparent;\ 
color: white;\ 
}\ 
</style>\ 
</head><body style=\"margin:0\">\ 
<embed allowScriptAccess=\"always\" id=\"yt\" src=\"%@&enablejsapi=1&playerapiid=yt\" type=\"application/x-shockwave-flash\" \ 
width=\"262\" height=\"187\"></embed>\ 
</body></html>"; 
NSString *html = [NSString stringWithFormat:embedHTML, urlString]; 
[self.webView loadHTMLString:html baseURL:nil]; 

который загружает и играет хорошо. Проблема, с которой я сталкиваюсь, заключается в том, что мое приложение строго соответствует портрету, и вы не можете его повернуть во время работы приложения. Если вы смотрите видео на YouTube, веб-просмотр делает переопределение (или что-то в этом роде), что позволяет пользователю вращаться в полноэкранном режиме, но это хорошо, если они закрывают/выбирают «Готово» на видео и закрываются во время пейзажа. приложение неожиданно появилось в ландшафте и сильно отрезано. Как я могу предотвратить это, сохраняя при этом альбомное воспроизведение видео?

+0

Вы переопределили viewControllers 'shouldAutorotate', чтобы вернуть NO? – katzenhut

+0

@ katzenhut это трюк, я хочу, чтобы они могли авторотировать во время видео, но приложение должно вернуться к портрету, как только они уменьшат просмотр веб-страниц с полноэкранного режима до нормального размера. – Jacksonkr

+0

вам может понадобиться подкласс uiwebview. заставьте делегата принять участие в его создателе, а затем перезвоните этому делегату, когда он закончит. ознакомьтесь с делегацией здесь: https://developer.apple.com/library/ios/documentation/general/conceptual/DevPedia-CocoaCore/Delegation.html – katzenhut

ответ

0

В настройках вашего проекта (цель приложения> Общие сведения> Информация о развертывании> Ориентация устройства) выберите «Портрет», «Пейзаж слева» и «Пейзаж справа».

В контроллере зрения корневой, добавьте:

- (BOOL)shouldAutorotate 
{ 
    return YES; 
} 

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 

Если все загружается в этот вид контроллера, который должен быть все, что вам нужно сделать. Если вы обнаружите, что некоторые виды вращаются, когда они этого не делают, добавьте этот же код в свои контроллеры.

Контроллер для полноэкранного видео будет использовать поддерживаемые ориентации, указанные в целевых настройках, и, таким образом, разрешить поворот к пейзажу. Когда вы закроете видео, изображение вернется к портрету.

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