酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

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

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アプリと連携したユニークなアプリを作っちゃいましょう!

関連記事