Загрузить 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. Вот как:

  1. Настройте UIWebView в своем приложении. Вы можете сделать его частью XIB или создать его программно. Измените размер UIWebView в соответствии с тем, насколько большим вы хотите, чтобы он был кликабельным.

  2. Захватите URL видео, используя тот же метод, который описан выше.

  3. Вызовите метод 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 и такой же простой.

Другие вопросы по тегам