如何从 UIWebView 中播放的 youtube 视频中获取 url?
问问题
1003 次
2 回答
4
将 YouTube 视频加载到 webView 后,我创建了一个按钮,用户可以点击该按钮将 URL 复制到同一页面上的文本字段中。诀窍是获取页面的 innerHTML,然后查找 YouTube ID。使用此 ID,然后我将其放入完整的 url,以便用户可以保存链接并在以后播放视频,而无需在 YouTube 网站上再次查找该视频。(顺便说一句,当 UIWebView 中没有加载视频或加载了很多视频时,我有自己的 displayAlert 接收给定消息并将其显示给用户)这是代码:
-(IBAction)copyURLAction {
if (webView) {
NSString* htmlString = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"];
if (htmlString) {
NSString *youTubeID = @"data-youtube-id=\"";
int position = [htmlString rangeOfString:youTubeID].location + [youTubeID length];
if (position > 1) {
htmlString = [htmlString substringFromIndex:position];
position = [htmlString rangeOfString:@"\""].location;
htmlString = [htmlString substringToIndex:position];
NSString* tempPrefix = @"http://m.youtube.com/watch?v=";
NSString *youTubeString = [tempPrefix stringByAppendingString:htmlString];
textFieldView.text = youTubeString;
} else {
[[SharedObjectsSingleton sharedInstance] displayAlert:@"Can't Copy URL" :@"Can only copy the URL when a single video is being displayed."];
}
} else {
[[SharedObjectsSingleton sharedInstance] displayAlert:@"Can't get URL" :@"Nothing to copy."];
}
}
}
于 2012-11-07T20:43:10.033 回答
1
上面的代码曾经可以工作,但我认为 youtube 已经更改了脚本,所以现在为了让它工作,你需要替换
@"data-youtube-id=\""
为@"i.ytimg.com/vi/"
于 2015-01-22T08:33:22.627 回答