6

I am creating an app with a shared session capability. For example a private app-to-app chat session...

I would start the app and create a "chat room" then "share" with someone via email. What I would like to do is create a URL that when it is clicked on it opens the app on your computer... if I am inviting you to my "chat room".

I have poked around on the web but don't see this behavior called out anywhere.

Ryan Pedersen
  • 3,177
  • 27
  • 39

2 Answers2

5

You can do this easily & simply with a metro application by adding a special section to your manifest, and making sure you handle the correct activation type in your activation handler.

You can easily add to the manifest by using the VS Editor for the manfiest:

  • Open the manifest by double clicking on it on solution explorer
  • Select "Declarations" tab
  • Under "Available declarations" select protocol, and then click add
  • Set the name field to the protocol you want. e.g. "myawesomeapp" (this will give you urls like myawesomeapp://foo/bar/baz)

To handle this protocol you need to look for the activation kind "Protocol". This is in your activation handler, and on the "Kind" property. Full details on MSDN here (prog. lang. switch is in the top right) for both JavaScript & C#/C++/VB.

Dominic Hopton
  • 7,262
  • 1
  • 22
  • 29
1

You can have your application install a protocol handler.

http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/bb266526(v=vs.85).aspx

Since your app must be installed on both computers, both would have the protocol handler installed.

A protocol handler allows you to define a new protocol name, similar to http: or ftp:, and have your application handle requests for that protocol. I once wrote one for Enterprise Architect that allowed users to share links to diagrams in projects using the format ea://MyProjectName?diagram=SomeDiagram.

You can check out that protocol handler here:

http://sourceforge.net/projects/eaprotocol/

Eric J.
  • 147,927
  • 63
  • 340
  • 553