2009/dap/contacts Overview.html,1.103,1.104

Update of /sources/public/2009/dap/contacts
In directory hutz:/tmp/cvs-serv7507/contacts

Modified Files:
	Overview.html 
Log Message:
Added data URI examples to 'Adding and Updating Contacts' section.

Index: Overview.html
===================================================================
RCS file: /sources/public/2009/dap/contacts/Overview.html,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -d -r1.103 -r1.104
--- Overview.html	10 Jan 2011 15:24:41 -0000	1.103
+++ Overview.html	14 Jan 2011 12:07:53 -0000	1.104
@@ -1674,12 +1674,29 @@
             <h4>Adding a new Contact</h4>
          
          <p>
-            A web page can dynamically generate a vCard object on the client side for download to the user's unified address book via the 
-            [[FILE-WRITER]] and [[FILE-API]] interfaces. The following example shows the process in which a web site may create a vCard object 
-            dynamically and then present this to the user. The user may then save this information by clicking on the presented information, download the 
+            A web page can dynamically generate a vCard object on the client side for download to the user's unified address book via either data: URIs [[RFC2397]] or using the 
+            [[FILE-WRITER]] and [[FILE-API]] interfaces. The following examples show two methods for creating a vCard object 
+            dynamically and then presenting this to the user. The user may then save this information by clicking on the presented information, download the 
             dynamically generated vCard object and invoke a suitable application with which to handle the dynamic resource. 
          </p>
-            
+         
+         <div class="example">
+            <pre class="sh_javascript">&lt;a id=&quot;vcard&quot;&gt;Save our Contact Details&lt;/a&gt;
+
+&lt;script type=&quot;text/javascript&quot;&gt;
+  var vcard = 'BEGIN:VCARD\r\n' +
+              'VERSION:2.1\r\n' +
+              'N:Doe;John\r\n' +
+              'FN:John Doe\r\n' +
+              'TEL;WORK;VOICE:123456\r\n' +
+              'END:VCARD';
+
+  // assign vCard as a Data URI to an anchor element for presentation and download by the user
+  document.getElementById('vcard').href = &quot;data:text/x-vcard;charset=utf-8,&quot; + encodeURIComponent( vcard ); 
+&lt;/script&gt;
+</pre>
+         </div>
+         
          <div class="example">
             <pre class="sh_javascript">&lt;a id=&quot;vcard&quot;&gt;Save our Contact Details&lt;/a&gt;
 
@@ -1718,11 +1735,32 @@
             </p>
             
             <p>
-               The example below shows how to update an existing Contact in the user's unified address book by maintaining a valid UID property
+               The examples below show two methods for updating an existing Contact in the user's unified address book by maintaining a valid UID property
                while changing other parameters of the Contact card. The user is then required to click on the resulting anchor element to download 
                the modified Contact resource. 
             </p>
-            
+
+         <div class="example">
+            <pre class="sh_javascript">&lt;a id=&quot;vcard&quot;&gt;Save our Contact Details&lt;/a&gt;
+
+&lt;script type=&quot;text/javascript&quot;&gt;
+  // Obtain a single existing Contact object resulting from navigator.service.contacts.find()
+  var existingContactObj = ...;
+  
+  var vcard = 'BEGIN:VCARD\r\n' +
+              'VERSION:2.1\r\n' +
+              'UID:' + existingContactObj.id + // assign the Contact.id to a UID property   
+              'N:Doe;John\r\n' +
+              'FN:John Doe\r\n' +
+              'TEL;HOME;VOICE:654321\r\n' +
+              'END:VCARD';
+
+  // assign vCard as a Data URI to an anchor element for presentation and download by the user
+  document.getElementById('vcard').href = &quot;data:text/x-vcard;charset=utf-8,&quot; + encodeURIComponent( vcard ); 
+&lt;/script&gt;
+</pre>
+         </div>
+                     
             <div class="example">
                <pre class="sh_javascript">&lt;a id=&quot;vcard&quot;&gt;Update our Contact Details&lt;/a&gt;
 
@@ -1733,7 +1771,7 @@
   // Modify some parameters as required. e.g. add a new phone number
   existingContactObj.phoneNumbers.push({
     type: 'home', 
-    value: '+440000000002'
+    value: '654321'
   });
 
   // With the existing Contact object, create an ArrayBuffer consisting of valid vCard 

Received on Friday, 14 January 2011 12:07:57 UTC