URI のアクティブ化を処理する方法 (JavaScript と HTML を使った Windows ストア アプリ)

Windows では、アプリを登録して特定の URI スキーム名の既定のハンドラーにすることができます。 デスクトップ アプリと Windows ストア アプリの両方を、URI スキーム名の既定のハンドラーに登録できます。 アプリを URI スキーム名の既定のハンドラーとして選ぶと、アプリはその種類の URI を起動するたびにアクティブ化されます。

URI スキーム名に登録するのは、その種類の URI スキームのすべての URI 起動を処理する場合のみにする必要があります。URI スキーム名に登録する場合は、その URI スキームのためにアプリをアクティブ化する際に必要な機能を、エンド ユーザーに提供することが重要です。 たとえば、mailto: URI スキーム名に登録したアプリでは、新規電子メール メッセージを開いて、ユーザーが新規電子メールを作ることができるようにする必要があります。 ファイルの関連付けについて詳しくは、「ファイルの種類と URI のガイドラインとチェック リスト」をご覧ください。

次の手順に、カスタムの URI スキーム名 alsdk:// を登録する方法と、ユーザーによって alsdk:// URI が起動されたときにアプリをアクティブ化する方法について説明します。

手順

ステップ 1: パッケージ マニフェストに拡張点を指定する

アプリは、パッケージ マニフェストに一覧表示される URI スキーム名のアクティブ化イベントだけを受け取ります。アプリが alsdk URI スキーム名を処理することを示す方法は次のとおりです。

  1. ソリューション エクスプローラーで、package.appxmanifest をダブルクリックして開きます。

    このフォームで指定することができる各フィールドについて、以下に簡単に説明します。

    フィールド説明

    名前

    同じ表示名、ロゴ、InfoTip、編集フラグを共有するファイルの種類のグループの名前を選びます。このグループ名は、アプリの更新後も維持される名前にします。

      名前はすべて小文字である必要があります。

    表示名

    コントロール パネル[既定のプログラムを設定する] で URI スキーム名を識別するための表示名を指定します。

    ロゴ

    コントロール パネル[既定のプログラムを設定する] で URI スキーム名を識別するために使われるロゴを指定します。ロゴを指定しない場合は、アプリの小さいロゴが使われます。

    目的の表示

    この URI スキーム名に対して起動されたときにアプリのウィンドウに必要なスペースの量を示すには、[Desired View] フィールドを指定します。[Desired View] に指定できる値は、DefaultUseLessUseHalfUseMore、または UseMinimum です。

      ターゲット アプリの最終的なウィンドウ サイズは、複数の異なる要素が考慮されて決定されます。たとえば、ソース アプリの設定、画面上のアプリの数、画面の向きなどです。目的の表示を設定しても、ターゲット アプリの特定のウィンドウ動作が保証されるわけではありません。

    Windows 8.1:  Desired View は Windows 8.1 と Windows Server 2012 R2 までサポートされません。

     

  2. [宣言] タブをクリックします。
  3. ドロップダウン リストから [プロトコル] を選んで、[追加] をクリックします。
  4. [名前] に「alsdk」と入力します。

    重要な注意:  次に示す URI スキームの名前 (アルファベット順) は、予約または禁止されているため、パッケージ マニフェストに入力できません。application.manifestapplication.referencebatfileblobcerfilechm.file cmdfile comfilecplfiledllfiledrvfileexefileexplorer.assocactionid.burnselectionexplorer.assocactionid.closesessionexplorer.assocactionid.erasediscexplorer.assocactionid.zipselectionexplorer.assocprotocol.search-msexplorer.burnselectionexplorer.closesessionexplorer.erasediscexplorer.zipselectionfilefonfilehlpfilehtafileinffile insfileinternetshortcut jsefilelnkfilemicrosoft.powershellscript.1ms-accountpictureproviderms-appdatams-appxms-autoplaymsi.packagemsi.patchms-windows-storeocxfilepiffileregfilescrfilescriptletfileshbfileshcmdfileshsfilesmb sysfile ttffileunknownusertileprovidervbefilevbsfilewindows.gadgetwsffilewsfilewshfile

  5. [ロゴ] に「images\Icon.png」と入力します。
  6. Ctrl + S キーを押して、変更を package.appxmanifest に保存します。

これにより、次のような Extension 要素がパッケージ マニフェストに追加されます。windows.protocol カテゴリは、アプリが alsdk URI スキーム名を処理することを示しています。



<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest">
   <Applications>
      <Application Id="AutoLaunch.App">
         <Extensions>
            <Extension Category="windows.protocol">
               <Protocol Name="alsdk" m2:DesiredView="useLess"/>
               <Logo>images\logo.png</Logo>										
               <DisplayName>SDK Sample URI Scheme</DisplayName>
            </Extension>			            
         </Extensions>
      </Application>
   </Applications>
</Package>

ステップ 2: 適切なアイコンを追加する

URI スキーム名の既定となるアプリは、そのアイコンがシステムのさまざまな場所に表示されます。アイコンは、たとえば [既定のプログラム] コントロール パネルに表示されます。

ロゴが適切に表示されるように、適切なアイコンをプロジェクトと共に含めることが重要です。画像フォルダーには、小サイズのロゴとアイコン用に 16、32、48、256 ピクセルの画像を含める必要があります。これらのアイコンは、カラー プレートが組み込まれたアプリのタイルのロゴと外観を調和させる必要があります。アイコンは、白い背景でテストする必要があります。サンプルのアイコンについては、関連付けの起動のサンプルに関するページをご覧ください。

ソリューション エクスプローラーで images フォルダー内にあるファイルを表示したようす。Icon.targetsize と smallTile-sdk の両方に 16、32、48、256 の各ピクセルのバージョンがあります。

ステップ 3: activated イベントに登録する

URI のアクティブ化を処理するには、activated イベントに登録します。


WinJS.Application.addEventListener("activated", onActivatedHandler, false);

ステップ 4: activated イベントを処理する

手順 1. で登録した activated イベント ハンドラーは、すべてのアクティブ化イベントを受け取ります。kind プロパティは、アクティブ化イベントの種類を示しています。次の例では、URI アクティブ化イベントを処理するように設定されています。


function onActivatedHandler(eventArgs) {
   if (eventArgs.detail.kind == Windows.ApplicationModel.Activation.ActivationKind.protocol) 
   {
       // TODO: Handle URI activation.

       // The received URI is eventArgs.detail.uri.rawUri
   }
}

注釈

URI スキーム名は、悪意のあるものも含め、あらゆるアプリや Web サイトから使われる可能性があります。そのため、その URI で受け取るデータは、信頼できないソースからのデータである可能性があります。URI で受け取るパラメーターに基づいて永続的な操作を実行しないようにしてください。たとえば、アプリを起動するとユーザーのアカウント ページが表示されるようにするために URI パラメーターを使うことはかまいませんが、ユーザーのアカウントを直接変更するためにプロトコル パラメーターを使うことは避けてください。

  アプリの新しい URI スキーム名を作成する場合は、RFC 4395 のガイダンスに従う必要があります。これにより確実に名前が URI スキームの標準に準拠するようになります。

  

完全な例

Association Launching サンプルのページをご覧ください。

関連トピック

概念
既定のプログラム
ファイルの種類と URI の関連付けのモデル
Windows 8 Release Preview および Windows Server 2012 RC 互換性クックブック (ユーザー モデル情報) に関するページ
タスク
URI に応じて既定のアプリを起動する方法
ファイルのアクティブ化を処理する方法
ガイドライン
ファイルの種類と URI のガイドラインとチェック リスト
辞書/リファレンス
Windows.UI.WebUI.WebUIProtocolActivatedEventArgs
WinJS.Application.onactivated

 

 

表示:
© 2014 Microsoft. All rights reserved.