Pick - http://webintents.org/pick

The pick intent is designed to give services the ability to allow their users pick files from their service for use in a client application.

An action that can handle pick could be anything that the user has installed, including and not limited to an image gallery such as Picasa or Flickr. A client application might be an email client such as Gmail or Hotmail.

The "Pick" protocol is intended to be a lightweight cloud file picker solution facility.

Registration

<intent
    action="http://webintents.org/pick" 
    type="image/*" 
    href="pick.html"
  />
action
Required. Must be http://webintents.org/pick
type
Optional. Types are a filter
href
Optional. If specified, it will point to the action that is loaded when the user chooses the service. If undefined, use the current page.

Invocation

var intent = new Intent("http://webintents.org/pick", "image/*");

/* Set up the callback that recieves the data */
var onsuccess = function(data) {
  // Add the new data to the image.
  var logo = document.getElementById("wilogo");
  logo.src = data;
};

window.navigator.startActivity(intent, onsuccess);

Try it!

Data Formats

Clients and services can only interact with each other if the both support the same intent AND the same data type. Data-types can be any arbitary string, but it is expected that client and service will pass the same data if they both agree to support the protocol.

Advisory data-schemes are described below based off MIME-Types or Activity Streams

image/*
[Blob] || [Data URI] || Blob || Data URI
audio/*
[Blob] || [Data URI] || Blob || Data URI
video/*
[Blob] || [Data URI] || Blob || Data URI
text/uri-list
[uri] || uri