Writeback proposal for saving Contacts and Calendar Events.

Hi,

When it comes to existing write back paradigms on the web we currently 
have the point, click and save system that is used ubiquitously for 
downloading files within browsers.

I'd like to incorporate this paradigm and share a writeback proposal 
that incorporates this existing paradigm, with the aid of the File API, 
for use in our Contacts and Calendar API specs..and perhaps for use in 
other DAP specs as applicable.

I'll jump straight in. So, for Contacts:

1. We will add a createPersonURL(ContactProperties) function to the 
navigator.service.contacts interface

2. A webapp developer can then call this function when they want to 
offer the user a way to save new contact information i.e.:

 > navigator.service.contacts.createPersonURL({
 >     displayName: 'Rich T',
 >     email: {
 >       type:'home',
 >       value: 'foo@baz.com'
 >     }
 > });

3. UA returns a Contact URI, which is a Blob URI [1], except with a 
different scheme (contact).

< contact:550e8400-e29b-41d4-a716-446655440000

The type attribute of the linked blob will be application/x-vcard.

4. Contact URL can be presented to the user for clicking. Alternatively 
the Contact URL can be invoked programmatically. e.g.:

 > window.open('contact:550e8400-e29b-41d4-a716-446655440000')

 > window.location.href='contact:550e8400-e29b-41d4-a716-446655440000'

...etc

5. The UA registered as the handler for Contact URLs (e.g. typically the 
same UA as the current UA) processes this URL when invoked.

We don't need to be specific on this processing. It could auto-save the 
linked contact without user prompting. Alternatively, and preferably, 
the UA would present a pre-populated browsing context that allows the 
user to review the contact details and click a 'Save' button which adds 
the Contact object to their contacts' store.


The same proposal also applies to calendar.

Thoughts welcome and let's discuss in the allocated time slot for this 
on Friday :)

- Rich


[1] http://dev.w3.org/2006/webapi/FileAPI/#url

Received on Tuesday, 2 November 2010 16:30:26 UTC