言語: HTML | XAML

URI のアクティブ化を処理する方法 (HTML)

Applies to Windows and Windows Phone

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

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

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

  • Applies to Windows Phone

  

Windows Phone 8.1 では、組み込みのアプリとオペレーティング システムで使うために、特定の URI とファイル拡張子が予約されています。予約されている URI またはファイル拡張子にアプリを登録しようとしても無視されます。詳しくは、「予約されているファイルと URI の関連付け」をご覧ください。

手順

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

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

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

    パッケージ マニフェストで指定することができる各フィールドについて、以下で簡単に説明します。

    フィールド説明

    名前

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

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

    予約および禁止されているファイルの種類

    予約または禁止されいるため、アプリを登録できない URI スキームを以下に示します (アルファベット順)。

    • Applies to Windows

    Windows ストア アプリの場合

    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

    • Applies to Windows Phone

    Windows Phone ストア アプリの場合

    Windows Phone では、組み込みのアプリ用に次の URI スキームが予約されています。

    bing、callto、dtmf、http、https、mailto、maps、ms-excel、ms-powerpoint、ms-settings-airplanemode、ms-settings-bluetooth、ms-settings-cellular、ms-settings-emailandaccounts、ms-settings-location、ms-settings-lock、ms-settings-wifi、ms-word、office、onenote、tel、wallet、xbls、zune

    Windows Phone では、オペレーティング システム用に次の URI スキームが予約されています。

    Explorer.AssocActionId.BurnSelection、Explorer.AssocActionId.CloseSession、Explorer.AssocActionId.EraseDisc、Explorer.AssocActionId.ZipSelection、Explorer.AssocProtocol.search-ms、Explorer.BurnSelection、Explorer.CloseSession、Explorer.EraseDisc、Explorer.ZipSelection、File、Iehistory、Ierss、Javascript、Jscript、LDAP、Res、rlogin、StickyNotes、telnet、tn3270、Vbscript、windowsmediacenterapp、windowsmediacenterssl、windowsmediacenterweb、WMP11.AssocProtocol.MMS

    表示名

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

    ロゴ

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

    可能な表示 (Windows のみ)

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

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

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

    Windows Phone:  [Desired View] は、Windows Phone ではサポートされていません。

     

  2. [宣言] タブをクリックします。
  3. ドロップダウン リストから [プロトコル] を選んで、[追加] をクリックします。
  4. [名前] に「alsdk」と入力します。
  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"/>
               <Logo>images\logo.png</Logo>										
               <DisplayName>SDK Sample URI Scheme</DisplayName>
            </Extension>			            
         </Extensions>
      </Application>
   </Applications>
</Package>

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

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

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

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

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

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


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

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

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


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 スキームの標準に準拠するようになります。

  • Applies to Windows Phone

  

プロトコル コントラクトを介して起動した場合、Windows Phone アプリでは、戻るボタンでアプリの以前のコンテンツに戻るのではなく、アプリを起動した画面に戻るようにする必要があります。

新しい URI ターゲットを開くアクティブ化イベントごとにアプリで新しい XAML フレームを作成することをお勧めします。こうすると、新しい XAML フレームのナビゲーション バックスタックに、中断されたときに現在のウィンドウに表示されていた以前のコンテンツが含まれなくなります。

起動コントラクトとプロトコル コントラクトで単一 XAML フレームを使うことにしたアプリは、新しいページに移動する前にフレームのナビゲーション ジャーナルにあるページをクリアする必要があります。 プロトコル コントラクトによって起動されたときは、アプリの先頭に戻ることができる UI を含めることを検討してください。

完全な例

関連付けによる起動のサンプル (Windows) に関するページをご覧ください。

関連トピック

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

 

 

表示:
© 2014 Microsoft