はじめに
第1回、第2回ではWindowsストアアプリケーションのデフォルトのプロジェクトを、第3回では画面を構成する部品「コントロール」について紹介しました。
第4回、第5回とWindowsストアアプリケーションを開発するうえで避けて通れない概念。コントラクトについて紹介しました。今回の第6回がコントラクトの紹介の最後となります。
今回紹介するのはそのうちの「ファイルのアクティブ化拡張機能」「プロトコルのアクティブ化拡張機能」「アカウント画像プロバイダー拡張機能」「カメラの設定拡張機能」「印刷タスク拡張機能」「SSL/証明書拡張機能」「ゲームエクスプローラー拡張機能」です。
本記事はXAML+C#での開発を想定しています。
ファイルのアクティブ化拡張機能
ファイルのアクティブ化拡張機能の概要
ファイルのアクティブ化拡張機能は、ファイルを開くアプリケーションとしてストアアプリを登録することができる機能です。ファイルの関連付けのストアアプリ版機能です。
例えば画像(.jpg)ファイルを開くアプリケーションとしてストアアプリを登録すると、jpgファイルをダブルクリックした際にストアアプリが立ち上がります。
ファイルのアクティブ化拡張機能の実装
Package.appxmanifestの編集
ファイルのアクティブ化拡張機能を追加するには、まずPackage.appxmanifestを編集します。
Package.appxmanifestの宣言タブを開きます。「使用可能な宣言」から「ファイルの種類の関連付け」を追加します。
名前の項目に「activate」、サポートされるファイルの種類項目のコンテンツタイプに「image/jpeg」、ファイルの種類に「.jpg」を入力します。
これで、Package.appxmanifestの編集は終了です。
App.xaml.csでファイルを受け取る処理を追加
Package.appxmanifestの編集で、ストアアプリが関連付けの対象となりました。
しかし、まだ関連付けの対象として実行されたファイルを受け取る処理が記述されていません。
protected override void OnFileActivated(FileActivatedEventArgs args) { // 起点となった関連付けられたファイルを取得する var file = args.Files[0]; }
args.Files[0]からは、実行されたファイルを表すStorageFileクラスが取得できます。
動作の確認
ファイルのアクティブ化拡張機能の動作を確認するには、完成したストアアプリを一度以上実行しておく必要があります。
今回紹介したサンプルの場合実行後に、jpgファイルを開くアプリとしてサンプルアプリが表示されます。
すでに他のアプリが関連付けられている場合は、jpgファイル上で右クリックし[プログラムから開く]を選択すると、サンプルアプリを選択できます。