Загрузить YouTube вне приложения - PullRequest
0 голосов
/ 30 декабря 2011

У меня есть простой UIWebView, показывающий страницу, включая миниатюру YouTube.Когда я нажимаю на нее, она загружается внутри приложения, но я хочу, чтобы она загружалась вне приложения в приложении YouTube.Как это можно сделать?

Спасибо.

Ответы [ 2 ]

1 голос
/ 30 декабря 2011

Это должно быть так же просто, как загрузить URL-адрес YouTube, например:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.youtube.com/watch?v=abcde12345"]];

Он не будет работать в симуляторе, потому что у него нет YouTube-приложения, но он будет работать на iPhone (надеюсь, не проверял).

(Я также вижу, что ваш приемлемый уровень довольно низок, вы должны щелкнуть мышью ✔ рядом с ответом, который, по вашему мнению, является лучшим ответом. Таким образом, люди, задающиеся вопросом об одном и том же, могут найти наиболее полезный ответьте быстро, и лицо, опубликовавшее ответ, будет аккредитовано.)

EDIT: Вот пример того, что вы можете сделать, чтобы перехватить 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;
}

Это не проверено, но должно работать:)

0 голосов
/ 30 декабря 2011

С 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).

Лучший способ проиллюстрировать этос фрагментом кода.Обратите внимание на использование мета-параметра HTML в окне просмотра и последовательное использование параметров ширины и высоты.

// webView - это UIWebView, программно инициализированный или загруженный как часть xib.

NSString * htmlString = @ "";

[webView loadHTMLString: htmlString baseURL: [NSURL URLWithString: @ "http://www.your -url.com"]];

Одно из самых больших преимуществПри таком подходе ваше приложение не должно закрываться, чтобы начать воспроизведение видео.Фактически, iPhone будет работать в фоновом режиме, пока проигрыватель YouTube запускает видео.После завершения воспроизведения видео (или когда пользователь нажимает кнопку «Готово»), пользователь автоматически возвращается в ваше приложение.Этот опыт очень похож на просмотр встроенных видео на YouTube в браузере iPhone Safari и такой же плавный.

...