読者です 読者をやめる 読者になる 読者になる

酢ろぐ!

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

Windows Phoneで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();

みんなもYoutubeアプリと連携したユニークなアプリを作っちゃいましょう!

関連記事