在应用程序外部加载 YouTube

问题描述 投票:0回答:2

我有一个简单的 UIWebView,显示包含 YouTube 缩略图的页面。当我单击它时,它会将其加载到应用程序内部,但我希望将其加载到 YouTube 应用程序的外部应用程序中。 这怎么办?

谢谢。

iphone sdk uiwebview youtube
2个回答
1
投票

它应该像加载 YouTube-video-url 一样简单:

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

它无法在模拟器中运行,因为它没有 YouTube 应用程序,但它可以在 iPhone 上运行(我希望,未经测试)。

编辑: 以下是您可以采取哪些措施来捕获 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
投票

来自 http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html

方法2:将YouTube播放器嵌入到UIWebView中

不,iPhone 仍然不支持 Flash,但如果您还没有 请注意,iPhone 上的 Safari 浏览器足够聪明,可以将任何内容 YouTube 嵌入到可点击的缩略图中,可启动本机 手机上的 YouTube 播放器应用程序。你可以利用这个 通过使用 UIWebView 在您的应用程序中提供功能。方法如下:

  1. 在您的应用程序中设置 UIWebView。您可以将其作为 xib 的一部分或以编程方式创建。根据大小调整 UIWebView 的大小 您想要可点击的缩略图。

  2. 使用与上述相同的方法获取视频网址。

  3. 使用一些精心构造的包含 YouTube 的 HTML 调用 UIWebView 实例上的 loadHTMLString:baseURL: 方法 嵌入播放器代码片段和一些支持 HTML 以确保 视频缩略图正确显示。将基本 URL 设置为 您网站的 URL(这里不执行任何操作 - 通常 UIWebView 使用它来正确处理相对 URL 链接)。

说明这一点的最佳方法是使用代码片段。使用注意事项 视口 HTML 元参数和宽度的一致使用 以及整个高度参数。

// webView 是一个 UIWebView,可以通过编程方式初始化,也可以 作为 xib 的一部分加载。

NSString *htmlString = @" ";

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

这种方法的最大好处之一是您的应用程序不会 必须退出才能开始播放视频。事实上, iPhone 会让你的应用程序在启动时在后台运行 YouTube 播放器来播放视频。视频播放完毕后 (或者当用户点击“完成”时),用户被自动收回 到您的应用程序。这种体验与观看嵌入式非常相似 iPhone Safari 浏览器中的 YouTube 视频同样无缝。

© www.soinside.com 2019 - 2024. All rights reserved.