トップ回答者
UWPアプリで、プロトコル(URL)の重複

質問
-
アプリにURLプロトコルを追加して、別アプリから起動させることができます。
(マニフェスト→宣言→追加→プロトコル)このURLですが、他のアプリとURL名が重複することがあり得ると思います。
自社のアプリ同志を連携させたいのですが、自社アプリを呼んだときに違うアプリが起動されるのは困ります。
このURL重複に対処するにはどうすれば良いのでしょうか?
- 編集済み TenpuraSoba 2016年3月12日 7:03
回答
-
基本的には他のアプリとURIが重複しないようするべきですが、Windows 10 からは LauncherOptions に TargetApplicationPackageFamilyName が追加されています。
参考:
WinRT/Metro TIPS:コマンドラインからURIで起動できるアプリを作るには?[ユニバーサルWindowsアプリ開発]
Windows 10 TPのUniversal application platformで別アプリを起動する - かずきのBlog@hatena
biac [ http://bluewatersoft.cocolog-nifty.com/ ]
- 編集済み biacMVP 2016年3月12日 8:35
- 回答の候補に設定 Tak1waMVP, Moderator 2016年3月12日 8:42
- 回答としてマーク 星 睦美 2016年5月10日 5:55
すべての返信
-
こんにちは。
URIを使用した別アプリケーションの起動は拡張機能という位置づけになると思います。
拡張機能の選択はユーザーが指定するもので、外部アプリケーションから指定することは出来ません。
逆に、MSDNでは
URI スキーム名は、悪意のあるものも含め、あらゆるアプリや Web サイトから使われる可能性があります。そのため、その URI で受け取るデータは、信頼できないソースからのデータである可能性があります。URI で受け取るパラメーターに基づいて永続的な操作を実行しないことをお勧めします。たとえば、アプリを起動するとユーザーのアカウント ページが表示されるようにするために URI パラメーターを使うことはかまいませんが、ユーザーのアカウントを直接変更するためにプロトコル パラメーターを使うことは決してしないことをお勧めします。
と注釈されているので、
特定のアプリケーションから起動されること、特定のアプリケーションを起動できること、を前提に設計してはいけないと思います。また、UWPアプリでは、ファイルの種類やURIに対する既定のアプリのアプリの設定、変更、照会はできない、とされています。
対策としては名前空間などと同様に、重複しないようなドメインなどをURIに含めることぐらいになってしまうのではないでしょうか。(追記)
ストアアプリと同じだと思い込んでました。
biacさんが仰っているようにWindows10からオプションが追加されていたようです。- 編集済み Tak1waMVP, Moderator 2016年3月12日 8:45
-
他のアプリとURIが重複しないようなものにすることはTak1waさんのおっしゃる通りですが、もしURIが重複してしまった場合、アプリの起動時に下記のようにユーザーに選択を求める画面が表示されます。プロトコルの表示名(下の画像ではApp2,App3の部分)に分かりやすい名前やアイコンを付けておくとなおよいと思います。
- 編集済み kenjinoteMVP 2016年3月12日 8:05
-
基本的には他のアプリとURIが重複しないようするべきですが、Windows 10 からは LauncherOptions に TargetApplicationPackageFamilyName が追加されています。
参考:
WinRT/Metro TIPS:コマンドラインからURIで起動できるアプリを作るには?[ユニバーサルWindowsアプリ開発]
Windows 10 TPのUniversal application platformで別アプリを起動する - かずきのBlog@hatena
biac [ http://bluewatersoft.cocolog-nifty.com/ ]
- 編集済み biacMVP 2016年3月12日 8:35
- 回答の候補に設定 Tak1waMVP, Moderator 2016年3月12日 8:42
- 回答としてマーク 星 睦美 2016年5月10日 5:55