WebBrowserTaskを使ってYouTubeアプリを起動する

Windows Phone 7ではアプリ間連携が出来ません。ですので例えば特定のYouTubeのビデオが見たい場合はWebBrowserTaskにURLを設定して、ブラウザ上で表示する必要がありました。ただ、YouTubeアプリが提供されているのであれば、多機能であるそれを使いたいです。

WebBrowserTaskを使ってVideoIDを設定して、YouTubeアプリを起動する方法がありましたので試してみました。WebBrowserTask.URLプロパティに、vnd.youtubeスキーマとVideoIDをEscapeDataStringメソッドでエスケープをし設定します。

            var task = new WebBrowserTask();
            task.URL = Uri.EscapeDataString("http://www.youtube.com/watch?v=PbEVKi1wEk0");
            task.Show();

上記のコードを実行してみました。普通はこんな感じです。

            var task = new WebBrowserTask();
            task.URL = Uri.EscapeDataString("vnd.youtube:PbEVKi1wEk0");
            task.Show();

上記のコードを実行してみました。

もっと汎用的に使えるようにURLからVideoIDを抜き出して、YouTubeアプリを起動させるコードがstackoverflowにありました。

        var YOUTUBE_VIDEO_URL = "http://www.youtube.com/watch?v=PbEVKi1wEk0");
 
        var Youtube = new Regex("youtu(?:\\.be|be\\.com)/(?:.*v(?:/|=)|(?:.*/)?)([a-zA-Z0-9-_]+)");            
        var youtubeMatch = Youtube.Match(YOUTUBE_VIDEO_URL);           
        var id = string.Empty;
 
        if (youtubeMatch.Success)
            id = youtubeMatch.Groups[1].Value; 
 
        var task = new WebBrowserTask();
        task.URL = "vnd.youtube:"+ id +"?vndapp=youtube_mobile";
        task.Show();