Zapewnia dostęp do bazy danych kontaktów urządzenia.
Ostrzeżenie: zbierania i wykorzystywania danych kontaktowych podnosi kwestie prywatności ważne. Polityka prywatności danej aplikacji należy Dyskutować, jak aplikacja używa danych kontaktowych i czy jest on dzielony z innymi stronami. Informacje kontaktowe uznaje wrażliwych, ponieważ ukazuje ludzi, z którymi osoba komunikuje się. W związku z tym oprócz aplikacji prywatności, zdecydowanie zaleca się zapewnienie just-in czas wypowiedzenia zanim aplikacja uzyskuje dostęp do lub używa danych kontaktowych, jeśli system operacyjny urządzenia nie robi już. Że ogłoszenie powinno zawierać te same informacje, o których wspomniano powyżej, jak również uzyskanie uprawnienia użytkownika (np. poprzez przedstawianie wyborów OK i Nie dzięki). Należy pamiętać, że niektóre platformy aplikacji może wymagać aplikacji powiadomienia just-in czas i uzyskać uprawnienia użytkownika przed uzyskaniem dostępu do danych kontaktowych. Jasne i łatwe do zrozumienia użytkownika doświadczenie, wykorzystanie kontaktów danych pomaga uniknąć nieporozumień użytkownik i postrzegane nadużycia danych kontaktowych. Aby uzyskać więcej informacji zobacz przewodnik prywatności.
cordova plugin add org.apache.cordova.contacts
Tworzenie www/manifest.webapp , jak opisano w Dokumentach Manifest. Dodaj odpowiednie permisions. Istnieje również potrzeba zmienić typ webapp do “uprzywilejowanych” - Manifest dokumenty. Ostrzeżenie: wszystkie uprzywilejowany apps egzekwowania Treści polityki bezpieczeństwa , który zabrania skrypt. Zainicjować aplikacji w inny sposób.
"type": "privileged", "permissions": { "contacts": { "access": "readwrite", "description": "Describe why there is a need for such permission" } }
Windows 8 kontaktów są tylko do odczytu. Poprzez kontakty Cordova API są nie queryable/wyszukiwania, należy poinformować użytkownika wybrać kontakt jako wezwanie do contacts.pickContact, która zostanie otwarta aplikacja ‘Ludzie’, gdzie użytkownik musi wybrać kontakt. Wszelkie kontakty, zwracane są tylko do odczytu, więc aplikacja nie mogą ich modyfikować.
navigator.contacts.create
Metoda jest synchroniczna i zwraca nową Contact
obiektu.
Ta metoda nie zachowuje kontakt obiektu bazy danych kontaktów urządzenie, dla którego musisz wywołać Contact.save
Metoda.
var myContact = navigator.contacts.create({"displayName": "Test User"});
navigator.contacts.find
Metoda asynchronicznie, wykonuje kwerendy bazy danych kontaktów urządzenia i tablicę z Contact
obiektów. Wynikowe obiekty są przekazywane do contactSuccess
funkcji wywołania zwrotnego, określony przez parametr contactSuccess .
Parametr contactFields określa pola, które mają być używane jako kwalifikator Szukaj. Zerowej długości contactFields parametr jest nieprawidłowy i wyniki w ContactError.INVALID_ARGUMENT_ERROR
. ContactFields wartość "*"
zwraca wszystkich pól.
Ciąg contactFindOptions.filter może służyć jako filtr wyszukiwania, gdy kwerenda bazy danych kontaktów. Jeśli dostarczone, przypadek-niewrażliwe, częściowej wartości mecz jest stosowane do każdego pola określony w parametrze contactFields . Jeśli ma odpowiednika dla każdego pola określony, zwracany jest kontakt. Użycie contactFindOptions.desiredFields parametr do kontroli, które kontakt właściwości muszą zostać zwrócone ponownie.
contactSuccess: sukcesu funkcji wywołania zwrotnego, wywoływane z tablicy obiektów kontaktów zwracane z bazy danych. [Wymagane]
contactError: Błąd funkcji wywołania zwrotnego, wywoływana, gdy wystąpi błąd. [Opcjonalnie]
contactFields: kontakt z pól do wykorzystania jako kwalifikator Szukaj. (DOMString[]) [Wymagane]
contactFindOptions: Szukaj opcji filtrowania navigator.contacts. [Opcjonalnie] Klucze obejmuje:
Filtr: ciąg wyszukiwania umożliwia znalezienie navigator.contacts. (DOMString) (Domyślnie:""
)
wiele: określa, czy operacja Znajdź zwraca wiele navigator.contacts. (Wartość logiczna) (Domyślnie:false
)
Contact
Obiekt dysponuje tylko wartości tych pól. (DOMString[]) [Opcjonalnie]function onSuccess(contacts) { alert('Found ' + contacts.length + ' contacts.'); }; function onError(contactError) { alert('onError!'); }; // find all contacts with 'Bob' in any name field var options = new ContactFindOptions(); options.filter = "Bob"; options.multiple = true; options.desiredFields = [navigator.contacts.fieldType.id]; var fields = [navigator.contacts.fieldType.displayName, navigator.contacts.fieldType.name]; navigator.contacts.find(onSuccess, onError, fields, options);
navigator.contacts.pickContact
Metoda uruchamia próbnika kontakt, wybierz jeden kontaktem. Wynikowy obiekt jest przekazywany do contactSuccess
funkcji wywołania zwrotnego, określony przez parametr contactSuccess .
contactSuccess: sukcesu funkcji wywołania zwrotnego, wywoływane z jednego obiektu kontakt. [Wymagane]
contactError: Błąd funkcji wywołania zwrotnego, wywoływana, gdy wystąpi błąd. [Opcjonalnie]
navigator.contacts.pickContact(function(contact){ console.log('The following contact has been selected:' + JSON.stringify(contact)); },function(err){ console.log('Error: ' + err); });
Contact
Obiekt reprezentuje informacje kontaktowe. Kontakty mogą być tworzone, przechowywane lub usunięte z bazy danych kontaktów urządzenia. Kontakty można również pobrać (pojedynczo lub zbiorczo) bazy danych przez navigator.contacts.find
Metoda.
Uwaga: nie wszystkie pola kontaktowe wymienione powyżej są obsługiwane na każdej platformie urządzenia. Proszę sprawdzić każdej platformy dziwactw sekcji szczegółów.
Identyfikator: unikatowy identyfikator globalny. (DOMString)
displayName: Nazwa tego kontaktu, nadaje się do wyświetlania użytkownikom końcowym. (DOMString)
Nazwa: obiekt zawierający wszystkie składniki nazwy osób. (Przedstawiciel)
nick: dorywczo nazwy na adres kontakt. (DOMString)
numery telefon≤w: tablica numerów telefonów kontaktowych. (ContactField[])
e-maile: tablica adresów e-mail kontakt. (ContactField[])
adresy: tablica wszystkie adresy. (ContactAddress[])
IMS: tablica kontakt IM adresy. (ContactField[])
organizacje: tablicy wszystkie kontakty organizacji. (ContactOrganization[])
urodziny: urodziny kontakt. (Data)
Uwaga: Uwaga o kontakt. (DOMString)
zdjęcia: tablica zdjęcia kontaktu. (ContactField[])
Kategorie: tablica wszystkie zdefiniowane przez użytkownika kategorie związane z kontaktem. (ContactField[])
adresy URL: tablicy stron internetowych związanych z kontaktem. (ContactField[])
klon: Zwraca nowy Contact
obiekt, który jest kopią głęboko obiektu wywołującego, z id
Właściwość zestawnull
.
Usuń: usuwa kontakt z bazy danych kontaktów urządzenia, w przeciwnym razie wykonuje błąd wywołania zwrotnego z ContactError
obiektu.
Zapisz: zapisuje nowy kontakt do bazy kontaktów urządzenia, lub aktualizacje już istniejący kontakt, jeśli istnieje już kontakt o tym samym identyfikatorze .
function onSuccess(contact) { alert("Save Success"); }; function onError(contactError) { alert("Error = " + contactError.code); }; // create a new contact object var contact = navigator.contacts.create(); contact.displayName = "Plumber"; contact.nickname = "Plumber"; // specify both to support all devices // populate some fields var name = new ContactName(); name.givenName = "Jane"; name.familyName = "Doe"; contact.name = name; // save to device contact.save(onSuccess,onError);
// clone the contact object var clone = contact.clone(); clone.name.givenName = "John"; console.log("Original contact name = " + contact.name.givenName); console.log("Cloned contact name = " + clone.name.givenName);
function onSuccess() { alert("Removal Success"); }; function onError(contactError) { alert("Error = " + contactError.code); }; // remove the contact from the device contact.remove(onSuccess,onError);
null
.Kategorie: częściowo obsługiwane. Pola pref i Typ wracająnull
IMS: nie obsługiwane
zdjęcia: nie obsługiwane
displayName: nie obsługiwane na iOS, powrót null
chyba jest nie ContactName
określony, w którym to przypadku zwraca nazwę kompozytowe, nick lub ""
, odpowiednio.
urodziny: należy wpisać jako JavaScript Date
obiektu, tak samo jest zwracany.
zdjęcia: zwraca adres URL pliku obrazu, który jest przechowywany w katalogu tymczasowego stosowania. Zawartość katalogu tymczasowe są usuwane, kiedy kończy pracę aplikacji.
Kategorie: Ta właściwość obecnie jest nie obsługiwane, powrótnull
.
displayName: podczas tworzenia kontaktu, Źródło wartość podana dla parametru nazwy wyświetlania różni się od nazwy wyświetlanej, gdy znalezienie kontaktu.
adresy URL: podczas tworzenia kontaktu, użytkownicy mogą wpisać i zapisać więcej niż jeden adres sieci web, ale tylko jeden jest dostępne podczas wyszukiwania kontaktów.
numery telefon≤w: pref opcja nie jest obsługiwana. Typ nie jest obsługiwany w operacji znaleźć . Jedynym phoneNumber
jest dozwolone dla każdego typu.
e-maile: pref opcja nie jest obsługiwana. Domu i osobiste odwołuje się w tym samym wpisu email. Dla każdego typu dozwolone jest tylko jeden wpis.
adresy: obsługuje tylko pracy i domu/osobisty typu. Domowych i osobistych typu odwołania tej samej pozycji adres. Dla każdego typu dozwolone jest tylko jeden wpis.
organizacje: tylko jeden jest dozwolone, a nie obsługuje * pref, Typi* atrybuty.
Uwaga: nie obsługiwane, powrótnull
.
IMS: nie obsługiwane, powrótnull
.
urodziny: nie obsługiwane, powrótnull
.
Kategorie: nie obsługiwane, powrótnull
.
ContactAddress
Obiektu przechowuje właściwości pojedynczego adresu kontaktu. A Contact
obiektu może zawierać więcej niż jeden adres w ContactAddress[]
tablicy.
Pref: zestaw true
Jeśli ContactAddress
zawiera wartości preferowanych użytkownika. (wartość logiczna)
Typ: string wskazującą typ pola, do domu na przykład. (DOMString)
w formacie: pełny adres w formacie wyświetlania. (DOMString)
adres: pełny adres. (DOMString)
miejscowości: miasta lub miejscowości. (DOMString)
region: Państwo lub region. (DOMString)
Kod pocztowy: kod pocztowy lub kod pocztowy. (DOMString)
kraj: nazwę kraju. (DOMString)
// display the address information for all contacts function onSuccess(contacts) { for (var i = 0; i < contacts.length; i++) { for (var j = 0; j < contacts[i].addresses.length; j++) { alert("Pref: " + contacts[i].addresses[j].pref + "\n" + "Type: " + contacts[i].addresses[j].type + "\n" + "Formatted: " + contacts[i].addresses[j].formatted + "\n" + "Street Address: " + contacts[i].addresses[j].streetAddress + "\n" + "Locality: " + contacts[i].addresses[j].locality + "\n" + "Region: " + contacts[i].addresses[j].region + "\n" + "Postal Code: " + contacts[i].addresses[j].postalCode + "\n" + "Country: " + contacts[i].addresses[j].country); } } }; function onError(contactError) { alert('onError!'); }; // find all contacts var options = new ContactFindOptions(); options.filter = ""; var filter = ["displayName", "addresses"]; navigator.contacts.find(filter, onSuccess, onError, options);
false
na urządzeniach Android 2.X.Pref: nie obsługiwane na urządzenia BlackBerry, powrótfalse
.
Typ: częściowo obsługiwane. Tylko jeden z pracy i Strona główna wpisz adresy mogą być przechowywane na kontakt.
w formacie: częściowo obsługiwane. Zwraca łączenie wszystkich pól adres BlackBerry.
adres: obsługiwane. Zwraca łączenie BlackBerry address1 i Adres2 pola adresu.
miejscowości: obsługiwane. Przechowywane w polu adres miasto BlackBerry.
region: obsługiwane. Przechowywane w polu adres stateProvince BlackBerry.
Kod pocztowy: obsługiwane. Przechowywane w polu adres zipPostal BlackBerry.
kraj: obsługiwane.
Pref: nie obsługiwane urządzenia iOS, powrótfalse
.
w formacie: obecnie nie jest obsługiwane.
ContactError
Zwracany jest obiekt użytkownika za pomocą contactError
funkcji wywołania zwrotnego, gdy wystąpi błąd.
ContactError.UNKNOWN_ERROR
(code 0)ContactError.INVALID_ARGUMENT_ERROR
(code 1)ContactError.TIMEOUT_ERROR
(code 2)ContactError.PENDING_OPERATION_ERROR
(code 3)ContactError.IO_ERROR
(code 4)ContactError.NOT_SUPPORTED_ERROR
(code 5)ContactError.PERMISSION_DENIED_ERROR
(code 20)ContactField
Obiekt jest składnikiem wielokrotnego użytku, że reprezentuje kontakt pola ogólnie. Każdy ContactField
zawiera obiekt value
, type
, a pref
Właściwość. A Contact
obiektu przechowuje wiele właściwości w ContactField[]
tablice, takie jak numery telefonu, adres e-mail.
W większości przypadków, są nie wcześniej ustalonych wartości dla ContactField
atrybut typu obiektu. Na przykład numer telefonu można określić Typ wartości domu, pracy, mobile, iPhone, lub jakąkolwiek inną wartość, który jest obsługiwany przez platformę danego urządzenia bazy danych kontaktów. Jednak dla Contact
zdjęcia pola, pole Typ wskazuje format zwrócone obrazu: url wartość atrybut zawiera adres URL do zdjęć lub base64 , gdy wartość zawiera ciąg base64 zakodowany obraz.
Typ: ciąg, który wskazuje typ pola, do domu , np. (DOMString)
wartości: wartość pola, na przykład adresu e-mail lub numer telefonu. (DOMString)
Pref: zestaw true
Jeśli ContactField
zawiera wartości preferowanych użytkownika. (wartość logiczna)
// 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();
false
.Typ: częściowo obsługiwane. Używane numery telefonów.
wartość: obsługiwane.
Pref: nie obsługiwane, powrótfalse
.
false
.false
.Zawiera różne rodzaje informacji o Contact
Nazwa obiektu.
w formacie: pełną nazwę kontaktu. (DOMString)
danych: nazwisko kontaktu. (DOMString)
imię: imię kontaktu. (DOMString)
middleName: nazwy bliskiego kontaktu. (DOMString)
honorificPrefix: kontakt prefiks (przykład Pan lub Dr) (DOMString)
honorificSuffix: kontakt sufiks (przykład Esq.). (DOMString)
function onSuccess(contacts) { for (var i = 0; i < contacts.length; i++) { alert("Formatted: " + contacts[i].name.formatted + "\n" + "Family Name: " + contacts[i].name.familyName + "\n" + "Given Name: " + contacts[i].name.givenName + "\n" + "Middle Name: " + contacts[i].name.middleName + "\n" + "Suffix: " + contacts[i].name.honorificSuffix + "\n" + "Prefix: " + contacts[i].name.honorificSuffix); } }; function onError(contactError) { alert('onError!'); }; var options = new ContactFindOptions(); options.filter = ""; filter = ["displayName", "name"]; navigator.contacts.find(filter, onSuccess, onError, options);
honorificPrefix
, givenName
, middleName
, familyName
, ihonorificSuffix
.w formacie: częściowo obsługiwane. Zwraca łączenie pól imię i nazwisko BlackBerry.
danych: obsługiwane. Przechowywane w BlackBerry pola nazwisko .
imię: obsługiwane. Przechowywane w polu imię BlackBerry.
middleName: nie obsługiwane, powrótnull
.
honorificPrefix: nie obsługiwane, powrótnull
.
honorificSuffix: nie obsługiwane, powrótnull
.
honorificPrefix
, givenName
, middleName
, familyName
, ihonorificSuffix
.w formacie: to jest tylko nazwa właściwość i jest taka sama, jak displayName
, inickname
danych: nie obsługiwane
imię: nie obsługiwane
middleName: nie obsługiwane
honorificPrefix: nie obsługiwane
honorificSuffix: nie obsługiwane
ContactOrganization
Obiektu przechowuje właściwości organizacji kontaktu. A Contact
obiektu przechowuje jeden lub więcej ContactOrganization
obiekty w tablicy.
Pref: zestaw true
Jeśli ContactOrganization
zawiera wartości preferowanych użytkownika. (wartość logiczna)
Typ: ciąg, który wskazuje typ pola, do domu , np. _(DOMString)
Nazwa: nazwa organizacji. (DOMString)
w departamencie: dziale umowy działa. (DOMString)
tytuł: tytuł kontaktu w organizacji. (DOMString)
function onSuccess(contacts) { for (var i = 0; i < contacts.length; i++) { for (var j = 0; j < contacts[i].organizations.length; j++) { alert("Pref: " + contacts[i].organizations[j].pref + "\n" + "Type: " + contacts[i].organizations[j].type + "\n" + "Name: " + contacts[i].organizations[j].name + "\n" + "Department: " + contacts[i].organizations[j].department + "\n" + "Title: " + contacts[i].organizations[j].title); } } }; function onError(contactError) { alert('onError!'); }; var options = new ContactFindOptions(); options.filter = ""; filter = ["displayName", "organizations"]; navigator.contacts.find(filter, onSuccess, onError, options);
false
.Pref: nie obsługiwane przez urządzenia BlackBerry, powrótfalse
.
Typ: nie obsługiwane przez urządzenia BlackBerry, powrótnull
.
Nazwa: częściowo obsługiwane. Pierwsza nazwa organizacji są przechowywane w polu firma BlackBerry.
w departamencie: nie obsługiwane, powrótnull
.
tytuł: częściowo obsługiwane. Pierwszy tytuł organizacji są przechowywane w polu jobTitle BlackBerry.
Pref: nie obsługiwane
Typ: nie obsługiwane
w departamencie: nie obsługiwane
Pola Nazwa i tytuł przechowywane w org i jobTitle.
Pref: nie obsługiwane urządzenia iOS, powrótfalse
.
Typ: nie obsługiwane urządzenia iOS, powrótnull
.
Nazwa: częściowo obsługiwane. Pierwsza nazwa organizacji są przechowywane w polu kABPersonOrganizationProperty iOS.
w departamencie: częściowo obsługiwane. Pierwsza nazwa jest przechowywana w polu kABPersonDepartmentProperty iOS.
tytuł: częściowo obsługiwane. Pierwszy tytuł jest przechowywany w polu kABPersonJobTitleProperty iOS.