【发布时间】:2012-01-30 04:17:24
【问题描述】:
我有一个简单的 UIWebView 显示包含 YouTube 缩略图的页面。当我点击它时,它会在应用程序中加载它,但我希望它在 YouTube 应用程序的应用程序之外加载。 如何做到这一点?
谢谢。
【问题讨论】:
标签: iphone sdk uiwebview youtube
我有一个简单的 UIWebView 显示包含 YouTube 缩略图的页面。当我点击它时,它会在应用程序中加载它,但我希望它在 YouTube 应用程序的应用程序之外加载。 如何做到这一点?
谢谢。
【问题讨论】:
标签: iphone sdk uiwebview youtube
应该像这样加载 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;
}
这未经测试,但应该可以工作:)
【讨论】:
来自http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html
方法二:在 UIWebView 中嵌入 YouTube 播放器
不,iPhone 仍然不支持 Flash,但如果您还没有的话 注意到,iPhone 上的 Safari 浏览器足够聪明,可以打开任何 YouTube 嵌入到启动原生的可点击缩略图中 手机上的 YouTube 播放器应用程序。你可以利用这个 使用 UIWebView 在您的应用中添加功能。方法如下:
在您的应用程序中设置 UIWebView。您可以使其成为 xib 的一部分或以编程方式创建它。根据大小调整 UIWebView 你想要可点击的缩略图。
使用与上述方法相同的方法获取视频网址。
在 UIWebView 实例上调用 loadHTMLString:baseURL: 方法,使用一些精心构建的 HTML,其中包含 YouTube 嵌入式播放器代码 sn-p 和一些支持 HTML 以确保 视频缩略图正确显示。将基本 URL 设置为 您网站的 URL(它在这里不做任何事情——通常 UIWebView 使用它来正确处理相对 URL 链接)。
说明这一点的最好方法是使用代码 sn-p。注意使用 视口 HTML 元参数和宽度的一致使用 和高度参数。
// webView 是一个 UIWebView,要么以编程方式初始化,要么 作为 xib 的一部分加载。
NSString *htmlString = @" ";
[webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:@"http://www.your-url.com"]];
这种方法的最大好处之一是您的应用不会 必须退出才能开始播放视频。事实上, iPhone 会在启动时让您的应用程序在后台运行 YouTube 播放器播放视频。视频播放完毕后 (或当用户点击“完成”时),用户被自动收回 到您的应用程序。这种体验和看嵌入式很像 iPhone Safari 浏览器中的 YouTube 视频同样无缝。
【讨论】: