ContactField
Supports generic fields in a [Contact](../Contact/contact.html)
object. Some properties stored
as ContactField
objects include email addresses, phone numbers, and
URLs.
Properties
-
type: A string that indicates what type of field this is, home for example. (DOMString)
-
value: The value of the field, such as a phone number or email address. (DOMString)
-
pref: Set to
true
if thisContactField
contains the user's preferred value. (boolean)
Details
The ContactField
object is a reusable component that represents
contact fields generically. Each ContactField
object contains a
value
, type
, and pref
property. A [Contact](../Contact/contact.html)
object stores
several properties in ContactField[]
arrays, such as phone numbers
and email addresses.
In most instances, there are no pre-determined values for a
ContactField
object's type attribute. For example, a phone
number can specify type values of home, work, mobile,
iPhone, or any other value that is supported by a particular device
platform's contact database. However, for the [Contact](../Contact/contact.html)
photos
field, the type field indicates the format of the returned image:
url when the value attribute contains a URL to the photo
image, or base64 when the value contains a base64-encoded image
string.
Supported Platforms
- Amazon Fire OS
- Android
- BlackBerry 10
- iOS
- Windows Phone 7 and 8
- Windows 8
Quick Example
// create a new contact
var contact = navigator.contacts.create();
// store contact phone numbers in ContactField[]
var phoneNumbers = [];
phoneNumbers[0] = new ContactField('work', '212-555-1234', false);
phoneNumbers[1] = new ContactField('mobile', '917-555-5432', true); // preferred number
phoneNumbers[2] = new ContactField('home', '203-555-7890', false);
contact.phoneNumbers = phoneNumbers;
// save the contact
contact.save();
Full Example
<!DOCTYPE html>
<html>
<head>
<title>Contact Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
// create a new contact
var contact = navigator.contacts.create();
// store contact phone numbers in ContactField[]
var phoneNumbers = [];
phoneNumbers[0] = new ContactField('work', '212-555-1234', false);
phoneNumbers[1] = new ContactField('mobile', '917-555-5432', true); // preferred number
phoneNumbers[2] = new ContactField('home', '203-555-7890', false);
contact.phoneNumbers = phoneNumbers;
// save the contact
contact.save();
// search contacts, returning display name and phone numbers
var options = new ContactFindOptions();
options.filter = "";
filter = ["displayName", "phoneNumbers"];
navigator.contacts.find(filter, onSuccess, onError, options);
}
// onSuccess: Get a snapshot of the current contacts
//
function onSuccess(contacts) {
for (var i = 0; i < contacts.length; i++) {
// display phone numbers
for (var j = 0; j < contacts[i].phoneNumbers.length; j++) {
alert("Type: " + contacts[i].phoneNumbers[j].type + "\n" +
"Value: " + contacts[i].phoneNumbers[j].value + "\n" +
"Preferred: " + contacts[i].phoneNumbers[j].pref);
}
}
};
// onError: Failed to get the contacts
//
function onError(contactError) {
alert('onError!');
}
</script>
</head>
<body>
<h1>Example</h1>
<p>Find Contacts</p>
</body>
</html>
Android Quirks
- pref: Not supported, returning
false
.
BlackBerry 10 Quirks
-
type: Partially supported. Used for phone numbers.
-
value: Supported.
-
pref: Not supported, returning
false
.
iOS Quirks
- pref: Not supported, returning
false
.