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