Загрузить YouTube вне приложения
У меня есть простой UIWebView, показывающий страницу, включая миниатюру YouTube. Когда я нажимаю на него, он загружает его внутри приложения, но я хочу, чтобы он загружался вне приложения в приложении YouTube. Как это может быть сделано?
Благодарю.
2 ответа
Это должно быть так же просто, как загрузить YouTube-video-url следующим образом:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.youtube.com/watch?v=abcde12345"]];
Он не будет работать в симуляторе, потому что у него нет YouTube-приложения, но он будет работать на iPhone (надеюсь, не проверял).
(Я также вижу, что ваш приемлемый уровень довольно низок, вы должны нажать на небольшую ✔ рядом с ответом, который, по вашему мнению, является лучшим ответом. Таким образом, люди, задающиеся вопросом об одном и том же, могут быстро найти наиболее полезный ответ, а человек, публикующий сообщение ответ будет аккредитован.)
РЕДАКТИРОВАТЬ: Вот пример того, что вы можете сделать, чтобы поймать URL-адреса YouTube и открыть их в приложении YouTube, а не в приложении:
- (BOOL)webView:(UIWebView *)wv shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
// Determine if we want the system to handle it.
NSURL *url = request.URL;
if ([url.host isEqual:@"youtube.com"] && ([url.query rangeOfString:@"watch"] != 0)) {
if ([[UIApplication sharedApplication]canOpenURL:url]) {
[[UIApplication sharedApplication]openURL:url];
return NO;
}
}
return YES;
}
Это не проверено, но должно работать:)
С http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html
Способ 2: встроить проигрыватель YouTube в UIWebView
Нет, iPhone по-прежнему не поддерживает Flash, но, если вы еще этого не заметили, браузер Safari на iPhone достаточно умен, чтобы превратить любую вставку YouTube в интерактивную миниатюру, запускающую приложение YouTube для проигрывателя на телефоне. Вы можете воспользоваться этой функцией в своем приложении, используя UIWebView. Вот как:
Настройте UIWebView в своем приложении. Вы можете сделать его частью XIB или создать его программно. Измените размер UIWebView в соответствии с тем, насколько большим вы хотите, чтобы он был кликабельным.
Захватите URL видео, используя тот же метод, который описан выше.
Вызовите метод loadHTMLString:baseURL: для экземпляра UIWebView с некоторым тщательно сконструированным HTML-кодом, содержащим фрагмент кода встроенного проигрывателя YouTube и вспомогательный HTML-код, чтобы убедиться, что миниатюра видео отображается правильно. Установите базовый URL для URL вашего сайта (здесь он ничего не делает - обычно UIWebView использует его для корректной обработки относительных ссылок URL).
Лучший способ проиллюстрировать это - фрагмент кода. Обратите внимание на использование метапараметра окна просмотра и последовательное использование параметров ширины и высоты.
// webView - это UIWebView, программно инициализированный или загруженный как часть xib.
NSString * htmlString = @ "";
[webView loadHTMLString: htmlString baseURL: [NSURL URLWithString: @ "http://www.your-url.com"]];
Одним из главных преимуществ этого подхода является то, что вашему приложению не нужно закрываться, чтобы начать воспроизведение видео. Фактически, iPhone будет работать в фоновом режиме, пока проигрыватель YouTube запускает видео. После завершения воспроизведения видео (или когда пользователь нажимает кнопку "Готово"), пользователь автоматически возвращается в ваше приложение. Этот опыт очень похож на просмотр встроенных видео на YouTube в браузере iPhone Safari и такой же простой.