--- 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>