SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

速習 Windowsストアアプリケーション

Windowsストアアプリのコントラクトの基礎
――ファイルのアクティブ化拡張機能ほか

速習 Windowsストアアプリケーション 第6回

  • X ポスト
  • このエントリーをはてなブックマークに追加

プロトコルのアクティブ化拡張機能

プロトコルのアクティブ化拡張機能の概要

 プロトコルのアクティブ化拡張機能を利用することで、特定のプロトコルに対応して起動するアプリケーションとしてストアアプリの登録ができます。

 プロトコルとして、例えば以下のような独自プロトコルを利用することができます。

codezineapp://activate;  

プロトコルのアクティブ化拡張機能の実装

Package.appxmanifestの編集

 プロトコルのアクティブ化拡張機能を追加するには、まずPackage.appxmanifestを編集します。

 宣言タブの「使用可能な宣言」で「プロトコル」を追加します。

 表示名を「プロトコルのアクティブ化」、名前を「codezineapp」と指定します。

プロトコルのアクティブ化拡張機能の宣言
プロトコルのアクティブ化拡張機能の宣言

App.xaml.csでファイルを受け取る処理を追加

 続いて、プロトコルのアクティブ化拡張機能のターゲットとして、ストアアプリが起動した際の起動処理を追記します。

プロトコルから起動された際の初期化処理
protected override void OnActivated(IActivatedEventArgs args)
{
    // 起動された条件を確認する。
    // ActivationKind.Protocolならプロトコルのアクティブ化拡張機能起動と判定してIActivatedEventArgsをProtocolActivatedEventArgsにキャストする
    if (args.Kind == ActivationKind.Protocol)
    {
        ProtocolActivatedEventArgs protocolArgs = args as ProtocolActivatedEventArgs;
    }
}

プロトコルのアクティブ化拡張機能の動作確認

 ストアアプリの動作を確認するには、この時点で一度ストアアプリを実行して登録しておく必要があります。

 登録した後、InternetExplolerのアドレス欄に以下のURLを入力します。

codezineapp://activate;  
IEからストアアプリを起動する
IEからストアアプリを起動する

 確認のダイアログが表示されるので、[許可]をクリックすることでストアアプリが起動します。

 それ以外にも、エクスプローラーのアドレス欄に入力して起動することができます。

別のストアアプリからプロトコルのアクティブ化拡張機能に対応したストアアプリを起動する

 プロトコルのアクティブ化拡張機能を利用すれば、ストアアプリから別のストアアプリを起動することが可能です。

 先ほどのサンプルアプリを起動する場合のコードは、以下のようになります。

プロトコルに対応したストアアプリを起動する
string uriToLaunch = "codezineapp://activate";
var uri = new Uri(uriToLaunch);

var success = await Windows.System.Launcher.LaunchUriAsync(uri);
if (success)
{
// URI launched
}
else
{
// URI launch failed
}

 これは、ストアアプリからインターネットエクスプローラー(もしくは既定のブラウザ)を起動する際の処理に似ています。

 LaunchUriAsyncは、第二引数にLauncherOptionsをオプションとして指定することもできます。

 プロトコルのアクティブ化拡張機能を用いたストアアプリの起動は、意図しないストアアプリからの起動も可能となりますので、受け取った値などのチェックをしっかり行い、セキュリティ上の問題がないように実装する必要があります。

次のページ
アカウント画像プロバイダー拡張機能

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
速習 Windowsストアアプリケーション連載記事一覧

もっと読む

この記事の著者

西村 誠(ニシムラ マコト)

 Microsoft MVP Windows Platform Development。 Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。 ブログ:眠るシーラカンスと水底のプログラマー 著書:基礎から学ぶ Windowsストアアプリ開発

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6975 2013/02/05 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング