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 に答える