Windows Phone 7ではアプリ間連携が出来ません。ですので例えば特定のYouTubeのビデオが見たい場合はWebBrowserTaskにURLを設定して、ブラウザ上で表示する必要がありました。ただ、YouTubeアプリが提供されているのであれば、多機能であるそれを使いたいです。
WebBrowserTaskを使ってVideoIDを設定して、YouTubeアプリを起動する方法がありましたので試してみました。WebBrowserTask.URLプロパティに、vnd.youtubeスキーマとVideoIDをEscapeDataStringメソッドでエスケープをし設定します。
|cs| var task = new WebBrowserTask(); task.URL = Uri.EscapeDataString( "http://www.youtube.com/watch?v=PbEVKi1wEk0"); task.Show(); ||<
上記のコードを実行してみました。普通はこんな感じです。
|cs| var task = new WebBrowserTask(); task.URL = Uri.EscapeDataString("vnd.youtube:PbEVKi1wEk0"); task.Show(); ||<
上記のコードを実行してみました。
もっと汎用的に使えるようにURLからVideoIDを抜き出して、YouTubeアプリを起動させるコードがstackoverflowにありました。
|cs| 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(); ||<
みんなもYoutubeアプリと連携したユニークなアプリを作っちゃいましょう!