0

如何从 UIWebView 中播放的 youtube 视频中获取 url?

4

2 回答 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 回答