in the beginning… what about the other way…?

37

Upload: alaina-williams

Post on 03-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: In the beginning… What about the other way…?
Page 2: In the beginning… What about the other way…?

App-to-App CommunicationSean McKennaProgram Manager, Windows [email protected]

Page 3: In the beginning… What about the other way…?

What is App-to-App Communication?

Page 4: In the beginning… What about the other way…?

In the beginning…

Page 5: In the beginning… What about the other way…?

Your App

Extending apps with the phone

Page 6: In the beginning… What about the other way…?

What about the other way…?

Page 7: In the beginning… What about the other way…?

Extending the phone with apps

Page 8: In the beginning… What about the other way…?

And finally…

Page 9: In the beginning… What about the other way…?

Custom URI AssociationsLaunch other apps to complete tasksPlay an album on Spotify

Play a video in YouTube

Post an update to Facebook

Launch device settings

Link your app into core experiencesBrowser

Messaging

EmailLauncher.LaunchUriAsync(new Uri("myapp:foo=1&bar=2"));

Page 10: In the beginning… What about the other way…?

Useful Built-in URI AssociationsTask URI Scheme

Lock screen settings ms-settings-lock:

Email and accounts ms-settings-emailandaccounts:

Location settings ms-settings-location:

Search for apps by publisher zune:search?publisher=<publisherID>

Page 11: In the beginning… What about the other way…?

File Type AssociationsLaunch files in the right appMicrosoft Office

Adobe Reader

Hike & Bike

Handle custom files in your appBrowser

Email

Office Hub

var pdfFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appdata:///Local/mydoc.pdf"));

Launcher.LaunchFileAsync(pdfFile);

Page 12: In the beginning… What about the other way…?

Useful built-in file types

Microsoft Word documents

Microsoft PowerPoint presentations

Microsoft Excel spreadsheets

Page 13: In the beginning… What about the other way…?

Demo: Opening an Office Document

Page 14: In the beginning… What about the other way…?

A Look Under the Hood

Source App

Execution Manager

Package Manage

r

Launch by file:Foo.bar

TokenID = 1234

Get handlers for ‘.bar’

Data Sharing Service

Create file brokering token

Target AppLaunch target

with token

Redeem token for file

Page 15: In the beginning… What about the other way…?

User Experience

Page 16: In the beginning… What about the other way…?

Guiding PrinciplesUser is always in controlApps cannot take over an extension

The list of installed apps is private user dataApps cannot query installed apps, URI associations, or file extensions

Standard tasks should be simple and predictableStandard types are handled by built-in experiences

Page 17: In the beginning… What about the other way…?

One Handler

Launch URI: skype:call?5551234

Page 18: In the beginning… What about the other way…?

No handlers

Page 19: In the beginning… What about the other way…?

2+ Handlers

Page 20: In the beginning… What about the other way…?

What’s happening in the wild?

Page 21: In the beginning… What about the other way…?

Demo: Building a mashup with URI Associations

Page 22: In the beginning… What about the other way…?

Using URI Associations to Extend Your App

Spotifyspotify:album:<albumID>spotify:track:<trackID>

YouTube

vnd.youtube:<videoID>

Page 23: In the beginning… What about the other way…?

Using URI Associations to Extend Your App

Facebookfb:profile[?id=<profileId>]fb:events[?id=<eventId>]fb:groups[?id=<groupId>]fb:pages[?id=<pageId>]fb:post?text=<textToPost>

Foursquarefoursquare://venues/<venueID>foursquare://checkins/<checkinID>foursquare://tips/<tipID>foursquare://users/<userID>

Page 24: In the beginning… What about the other way…?

Using URI Associations to Extend Your App

Here Drive (+others)ms-drive-to:?destination.latitude=<latitude> &destination.longitude=<longitude> &destination.name=<name>

Here Maps (+others)ms-walk-to:?destination.latitude=<latitude> &destination.longitude=<longitude> &destination.name=<name>

Page 25: In the beginning… What about the other way…?

App Launching via ProximityTarget apps• Your app can be launched based on a URI sent from another

device• Handler code is exactly the same• Proximity capability is not required

Source apps• You can launch apps on other devices using the Proximity

APIs

Page 26: In the beginning… What about the other way…?

Demo: Launching via proximity

Page 27: In the beginning… What about the other way…?

Coming Soon:Facebook Single Sign-On

Page 28: In the beginning… What about the other way…?

Facebook Single Sign-OnRegister your app with Facebook Dev PortalInvoke auth with FB AppID and requested permissionsHandle reactivation when user returns from Facebook app

Page 29: In the beginning… What about the other way…?

Facebook Single Sign-On

Your App Facebook App

Page 30: In the beginning… What about the other way…?

Recap

Use URI schemes and file associations to extend your appSupport your own schemes and file types for exposureHelp us evangelize and catalog these extensions

Page 31: In the beginning… What about the other way…?

Sean [email protected]

THANK YOU!

Page 32: In the beginning… What about the other way…?

Sean McKenna [email protected]

Q&A

Page 33: In the beginning… What about the other way…?

Evaluate this session

Scan this QR code to evaluate this session and be automatically entered in a drawing to win a prize!

Page 34: In the beginning… What about the other way…?

© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 35: In the beginning… What about the other way…?

Coming Soon: Facebook Single Sign-On

Page 36: In the beginning… What about the other way…?

Facebook Single Sign-On

Register your app with Facebook Dev PortalInvoke auth with FB AppID and requested permissionsHandle reactivation when user returns from Facebook app

Page 37: In the beginning… What about the other way…?

Facebook Single Sign-On

Your App Facebook App