- From: Mercurial notifier <cvsmail@w3.org>
- Date: Mon, 17 Sep 2012 03:05:01 +0000
- To: public-dap-commits@w3.org
changeset: 220:c6b56c18ecba tag: tip user: Jungkee Song <jungkee.song@samsung.com> date: Mon Sep 17 12:04:25 2012 +0900 files: contacts/Overview.html description: Merge Robin's latest changes - remove user interaction guideline for navigator.contact.find() diff -r ec6aa35ffeae -r c6b56c18ecba contacts/Overview.html --- a/contacts/Overview.html Thu Sep 13 20:58:29 2012 +0900 +++ b/contacts/Overview.html Mon Sep 17 12:04:25 2012 +0900 @@ -25,7 +25,7 @@ // previousPublishDate: "2011-06-16", // lcEnd: "2011-07-14", // previousMaturity: "LC", - edDraftURI: "http://w3c-test.org/2009/dap/contacts/", + edDraftURI: "http://w3c-test.org/dap/contacts/", wg: "Device APIs Working Group", wgURI: "http://www.w3.org/2009/dap/", wgPublicList: "public-device-apis", @@ -84,9 +84,7 @@ <p> A set of <a href="#security-and-privacy-considerations">Security and Privacy Considerations</a> are presented for the discretion of both implementers of Pick Contacts Intent services and recipients of contact - information (i.e. Web applications). This specification provides a set of non-normative - <a href="#user-interaction-guidelines">User Interaction Guidelines</a> demonstrating an example user experience - that is compliant with the Security and Privacy Considerations described herein. + information (i.e. Web applications). </p> <p> The following code illustrates how to obtain contact information from a user's address book: @@ -518,199 +516,5 @@ </p> </section> </section> - <section class="informative appendix"> - <h2>User Interaction Guidelines</h2> - - <p> - This specification is primarily intended to provide the user with the ability to view and control the - contact information that may be shared from their unified address book. This annex provides some examples - of a conformant user experience that this specification enables. - </p> - - <section> - <h3>Accessing Contact Information - Example #1</h3> - - <p> - A website requests access to a user's address book with the following code: - </p> - - <div class='example'> - <pre class="sh_javascript"> - <script type="text/javascript"> - - function successContactFindCallback(contacts) { - // do something with resulting contact objects - for (var i in contacts) alert(contacts[i].name); - // ... - } - - function generalErrorCB(error) { - // do something with resulting errors - alert(error.code); - // ... - } - - // Perform an address book search. Obtain the 'name' and 'emails' properties - // and initially filter the list to Contact records containing 'Bob': - navigator.contacts.find(['name', 'emails'], - successContactFindCallback, - generalErrorCB, - { filter: 'Bob', multiple: true } - ); - - </script> - </pre> - </div> - - <p> - As a result of executing this code, the <a>user agent</a> may provide a non-blocking <dfn>contact - search notification</dfn> as follows: - </p> - - <p align="center"><img src="contacts_notification.png" alt="Contact Search Notification"><br> - (<a href="contacts_notification.png">View as PNG</a>) - </p> - - <p> - If an additional find() operation is called by the current web application before the user has - clicked 'Select' or 'Cancel' on the current notification, an error will be invoked with a code of - <a href="#widl-ContactError-PENDING_OPERATION_ERROR"><code>PENDING_OPERATION_ERROR</code></a> if that - operation was defined with a non-<code>null</code> <code>errorCB</code> parameter. - </p> - - <p> - If the user clicks 'Cancel', the <code>errorCB</code>, if non-<code>null</code> for the current - find() operation, will be invoked with an error code of <a href= - "#widl-ContactError-PERMISSION_DENIED_ERROR"><code>PERMISSION_DENIED_ERROR</code></a>. - </p> - - <p> - If the user clicks 'Select', the <a>user agent</a> may provide a <dfn>contact picker</dfn>, - utilizing all of the parameters provided in the find() operation as follows: - </p> - - <p align="center"><img src="contacts_picker.png" alt="Contact Picker"><br> - (<a href="contacts_picker.png">View as PNG</a>) - </p> - - <p> - In this dialog, the user is provided with a summary of the sharing that the application is - requesting and the option to select one or more contacts (as appropriate) from the user interface. - </p> - - <p> - If an additional find() operation is called by the current web application before the user has - clicked 'Select' or 'Cancel' on the current notification, an error will be invoked with a code of - <a href="#widl-ContactError-PENDING_OPERATION_ERROR"><code>PENDING_OPERATION_ERROR</code></a> if that - operation was defined with a non-<code>null</code> <code>errorCB</code> parameter. - </p> - - <p> - If the user clicks 'Cancel', the <code>errorCB</code>, if non-<code>null</code> for the current - find() operation, will be invoked with an error code of <a href= - "#widl-ContactError-PERMISSION_DENIED_ERROR"><code>PERMISSION_DENIED_ERROR</code></a>. - </p> - - <p> - If the user clicks 'Select', the <a href="#contactfindcb-interface"><code>ContactFindCB</code></a> - associated to the current find() operation will be invoked with the contact information selected by the - user provided as the only parameter. - </p> - - <p> - Further to this initial sharing of Contact information, the <a href= - "#security-and-privacy-considerations">Security and Privacy Considerations</a> section expects that the - user should easily be able to review and revoke access that web applications have to this API - at a later time. - </p> - </section> - - <section> - <h3>Accessing Contact Information - Example #2</h3> - - <p> - A website requests access to a user's address book with the following code: - </p> - - <div class='example'> - <pre class="sh_javascript"> - <input type="button" value="Share Contacts" onclick="getContacts()" /> - - <script type="text/javascript"> - function successContactFindCallback(contacts) { - // do something with resulting contact objects - for (var i in contacts) alert(contacts[i].name); - // ... - } - - function generalErrorCB(error) { - // do something with resulting errors - alert(error.code); - // ... - } - - function getContacts() { - // Perform an address book search. Obtain the 'name' and 'emails' properties - // and initially filter the list to Contact records containing 'Bob': - navigator.contacts.find( ['name', 'emails'], - successContactFindCallback, - generalErrorCB, - { filter: 'Bob', multiple: true } ); - } - </script> - </pre> - </div> - - <p> - This code may render as follows within the <a>user agent</a>: - </p> - - <p align="center"><img src="contacts_element.png" alt="Contact Search via DOM Events"><br> - (<a href="contacts_element.png">View as PNG</a>) - </p> - - <p> - If the user clicks on the rendered button element then the <a>user agent</a> may directly provide a - <dfn>contact picker</dfn>, as defined in <a href="#api-invocation-via-dom-events">API Invocation via - DOM Events</a>, utilizing all of the parameters provided in the <code>find()</code> operation as - follows: - </p> - - <p align="center"><img src="contacts_picker.png" alt="Contact Picker"><br> - (<a href="contacts_picker.png">View as PNG</a>) - </p> - - <p> - In this dialog, the user is provided with a summary of the sharing that the application is - requesting and the option to select one or more contacts (as appropriate) from the user interface. - </p> - - <p> - If an additional find() operation is called by the current web application before the user has - clicked 'Select' or 'Cancel' on the current notification, an error will be invoked with a code of - <a href="#widl-ContactError-PENDING_OPERATION_ERROR"><code>PENDING_OPERATION_ERROR</code></a> if that - operation was defined with a non-<code>null</code> <code>errorCB</code> parameter. - </p> - - <p> - If the user clicks 'Cancel', the <code>errorCB</code>, if non-<code>null</code> for the current - find() operation, will be invoked with an error code of <a href= - "#widl-ContactError-PERMISSION_DENIED_ERROR"><code>PERMISSION_DENIED_ERROR</code></a>. - </p> - - <p> - If the user clicks 'Select', the <a href="#contactfindcb-interface"><code>ContactFindCB</code></a> - associated to the current find() operation will be invoked with the contact information selected by the - user provided as the only parameter. - </p> - - <p> - Further to this initial sharing of Contact information, the <a href= - "#security-and-privacy-considerations">Security and Privacy Considerations</a> section expects that the - user should easily be able to review and revoke access that web applications have to this API - at a later time. - </p> - </section> - </section> </body> </html>
Received on Monday, 17 September 2012 03:05:03 UTC