
The index.html file containing JavaScript that makes use of the
Contact Database API functionality is listed below.
<!DOCTYPE html>
<html manifest="cache.mf">
<head>
<script type="text/javascript">
var now = new Date();
var nowUtc = new Date(now.getUTCFullYear(), now.getUTCMonth(),
now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(),
now.getUTCSeconds());
var dateStampGlobalVariable = nowUtc.toJSON().toString();
function printText(str) {
var d = document.getElementById("results");
d.appendChild(document.createTextNode(str));
d.appendChild(document.createElement('br'));
d.scrollTop = d.scrollHeight;
}
;
function clearOutput() {
var d = document.getElementById("results");
d.innerHTML = "";
}
;
function saveContact() {
var newContact = {
//id,
readOnly: true,
//lastUpdated, read-only
name: ["name"],
honorificPrefix: ["honorificPrefix"],
givenName: ["givenName"],
additionalName: ["additionalName"],
// {String[]} Only first item is supported on Android/iOS.
familyName: ["familyName"],
// {String[]} Only first item is supported on Android/iOS.
honorificSuffix: ["honorificSuffix"],
// {String[]} Only first item is supported on Android/iOS.
nickname: ["nickname"],
// {String[]} Only first item is supported on Android/iOS.
email: [
{value: '[email protected]', type: "work"},
{value: '[email protected]', type: "home"}
],
// {ContactField[]}
//photo,
// {String[]} Data URI, only first item is supported on Android/iOS.
// On iOS thumbnails are returned for performance reasons.
url: [
{value: 'http/google.com', type: "work"},
{value: 'http://onet.pl', type: "home"}
],
// {ContactField[]}
//categories,
// {String[]} Not Supported
adr: [
{type: "work", streetAddress: "streetAddress", postalCode: "11-222" },
{type: "home", streetAddress: "streetAddress2", postalCode: "11-333" }
],
// {ContactAddress[]}
tel: [
{type: "work", value: "123456789"},
{type: "home", value: "987654321"}
],
// {ContactTelField[]} Carrier name is not supported on iOS.
org: ["Organization"],
// {String[]} Only first item is supported on Android/iOS.
jobTitle: ["jobTitle"],
// {String[]} Only first item is supported on Android/iOS.
bday: dateStampGlobalVariable,
note: ["Lorem ipsum dolor sit amet, consectetur adipiscing elit."],
// {String[]} Only first item is supported on iOS.
//impp,
// {ContactField[]} Not supported.
anniversary: dateStampGlobalVariable
// {Date}
//sex,
// {String} Not supported (no corresponding native field).
//genderIdentity,
// {String} Not supported (no corresponding native field).
};
var callbacks = {
onSuccess: function (contact) {
printText("save onSuccess called!");
printText(JSON.stringify(contact));
},
onFailure: function (err) {
printText("save onFailure called!");
printText(err.code);
printText(err.description);
}
};
var contacts = launchbox.Contacts;
contacts.save(newContact, callbacks);
}
;
function findContact(){
var options = {
filterValue: "jobTitle",
filterOp: "is",
filterBy: ["jobTitle"],
sortBy: "givenName",
sortOrder: "ascending",
filterLimit: 100
};
var callbacks = {
onSuccess: function (contact) {
printText("find onSuccess called!");
printText(JSON.stringify(contact));
},
onFailure: function () {
printText("find onFailure called!");
}
};
var contacts = launchbox.Contacts;
contacts.find(options, callbacks);
};
function removeContact(){
var options = {
filterValue: "jobTitle",
filterOp: "is",
filterBy: ["jobTitle"],
sortBy: "givenName",
sortOrder: "ascending",
filterLimit: 100
};
var removeCallbacks = {
onSuccess: function (contact) {
printText("remove onSuccess called!");
printText(JSON.stringify(contact));
},
onFailure: function () {
printText("remove onFailure called!");
}
};
var findCallbacks = {
onSuccess: function (contact) {
printText("find onSuccess called!");
printText(JSON.stringify(contact));
window.launchbox.Contacts.remove(contacts[0], removeCallbacks);
},
onFailure: function () {
printText("find onFailure called!");
}
};
var contacts = launchbox.Contacts;
contacts.find(options, findCallbacks);
}
</script>
</head>
<body>
<input type="button" onclick="clearOutput();" value="Clear output">
<hr/>
<p>Contacts Launchbox API</p>
<input type="button" onclick="saveContact();" value="save Contact">
<input type="button" onclick="findContact();" value="find Contact">
<input type="button" onclick="removeContact();" value="remove Contact">
<hr/>
<div id="results"></div>
</body>
</html>The contents of the cache manifest file called manifest.appcache for
this application are listed below:
CACHE MANIFEST CACHE: index.html NETWORK: *